The Kermit Project
Columbia University
- As of C-Kermit version: 9.0.300, 30 June 2011
- This file last updated: Tue Jun 28 08:28:08 2011 (New York City
+ As of C-Kermit version: 9.0.302, 20 August 2011
+ This file last updated: Sun Aug 21 12:08:29 2011 (New York City
time)
IF YOU ARE READING A PLAIN-TEXT version of this document, it is a
Thus, a well-crafted installation procedure should present the options
and allow the installer to choose the method, if any, for regulating
- accesss to the dialout devices:
+ access to the dialout devices:
a. Check the permissions of the lockfile directory and the dialout
- devices. If they do not allow group or world R/W accesss, then:
+ devices. If they do not allow group or world R/W access, then:
b. "Your UUCP lockfile directory and/or dialout devices require
- privilege to accesss. You must either change their permissions or
+ privilege to access. You must either change their permissions or
install Kermit with privileges."
c. "If you wish to install Kermit with privileges, it will be given
the same owner, group, and permissions as the cu program so it can
Hundreds of prebuilt C-Kermit binaries are available on the CDROM in
the BINARY tree [NOTE: The C-Kermit CDROM is still for version 7.0],
and at our ftp site in the [72]kermit/bin area (with names starting
- with "ck"), also accesssible on the [73]C-Kermit website. To install a
+ with "ck"), also accessible on the [73]C-Kermit website. To install a
prebuilt binary:
a. Rename the binary to "wermit".
(Also see the [110]Configurations Options document, [111]Section 8).
Lots of new features have been added in versions 7.0 and 8.0 that
- require accesss to new symbols, APIs, libraries, etc, and this will no
+ require access to new symbols, APIs, libraries, etc, and this will no
doubt cause problems in compiling, linking, or execution on platforms
where 6.0 and earlier built without incident. This section contains
what we know as of the date of this file.
make particular connections, execute complicated scripts, whatever you
want.
+ And in C-Kermit 9.0 the initialization has indeed been "retired" by
+ renaming it to okermit.ini, and replaced by a stub ckermit.ini that
+ doesn't do anything but print a message. Ditto for ckermod.ini.
+
5.2. Text Files
These are entirely optional. Many of them are to be found at the Kermit
the Kermit website as:
[183]http://www.columbia.edu/kermit/ckermit80.html
- [184]ckcbwr.txt
+ [184]ckermit90.txt
+ Supplement to [185]Using C-Kermit for version 9.0. Available on
+ the Kermit website as:
+ [186]http://www.columbia.edu/kermit/ckermit90.html
+
+ [187]ckcbwr.txt
The general C-Kermit hints and tips ("beware") file. Available
on the Kermit website as:
- [185]http://www.columbia.edu/kermit/ckcbwr.html
+ [188]http://www.columbia.edu/kermit/ckcbwr.html
- [186]ckubwr.txt
+ [189]ckubwr.txt
The Unix-specific C-Kermit hints and tips file. Available on the
Kermit website as:
- [187]http://www.columbia.edu/kermit/ckubwr.html
+ [190]http://www.columbia.edu/kermit/ckubwr.html
- [188]ckuins.txt
+ [191]ckuins.txt
Unix C-Kermit Installation Instructions (this file). Available
on the Kermit website as:
- [189]http://www.columbia.edu/kermit/ckuins.html
+ [192]http://www.columbia.edu/kermit/ckuins.html
- [190]ckccfg.txt
+ [193]ckccfg.txt
C-Kermit compile-time configuration options. Available on the
Kermit website as:
- [191]http://www.columbia.edu/kermit/ckccfg.html
+ [194]http://www.columbia.edu/kermit/ckccfg.html
- [192]ckcplm.txt
+ [195]ckcplm.txt
The C-Kermit program logic manual. Available on the Kermit
website as:
- [193]http://www.columbia.edu/kermit/ckcplm.html
+ [196]http://www.columbia.edu/kermit/ckcplm.html
- [194]ca_certs.pem
+ [197]ca_certs.pem
Certificate Authority certificates for secure connections (see
- [195]Section 16).
+ [198]Section 16).
5.3. Installing the Kermit Files
- There is an "install" target in the [196]makefile that you can use if
+ There is an "install" target in the [199]makefile that you can use if
you wish. However, since every site has its own layout and
requirements, it is often better to install the Kermit files by hand.
You don't have to use the makefile install target to install C-Kermit.
available.
In most cases, you need to be root to install C-Kermit, if only to gain
- write accesss to directories in which the binary and manual page are to
+ write access to directories in which the binary and manual page are to
be copied. The C-Kermit binary should be installed in a directory that
is in the users' PATH, but that is not likely to be overwritten when
you install a new version of the operating system. A good candidate
make install
IMPORTANT: IF C-KERMIT IS TO BE USED FOR DIALING OUT, you must also do
- something to give it accesss to the dialout devices and lockfile
+ something to give it access to the dialout devices and lockfile
directories. The 'install' target does not attempt to set Kermit's
owner, group, and permissions to allow dialing out. This requires
privileges, open eyes, and human decision-making. Please read
- [197]Sections 10 and [198]11 below, make the necessary decisions, and
+ [200]Sections 10 and [201]11 below, make the necessary decisions, and
then implement them by hand as described in those sections.
You should also install the man page, which is called ckuker.nr, in the
appropriately, e.g. to kermit.1. This is also taken care of by "make
install".
- Optionally, the text files listed in the [199]previous section can be
+ Optionally, the text files listed in the [202]previous section can be
placed in a publicly readable directory. Suggested directory names are:
/usr/local/doc/kermit/
give it the information it needs by setting the variables described
below. You can use this target if:
- * You downloaded the [200]complete C-Kermit archive and built
+ * You downloaded the [203]complete C-Kermit archive and built
C-Kermit from source; or:
- * You downloaded an [201]individual C-Kermit binary and the
- [202]C-Kermit text-file archive, and your computer has a "make"
+ * You downloaded an [204]individual C-Kermit binary and the
+ [205]C-Kermit text-file archive, and your computer has a "make"
command.
Here are the parameters you need to know:
6. INSTALLING UNIX C-KERMIT FROM DOS-FORMAT DISKETTES
- [ [203]Top ] [ [204]Contents ] [ [205]Next ] [ [206]Previous ]
+ [ [206]Top ] [ [207]Contents ] [ [208]Next ] [ [209]Previous ]
This section is obsolete. We don't distribute C-Kermit on diskettes
any more because (a)there is no demand, and (b) it no longer fits.
7. CHECKING THE RESULTS
- [ [207]Top ] [ [208]Contents ] [ [209]Next ] [ [210]Previous ]
+ [ [210]Top ] [ [211]Contents ] [ [212]Next ] [ [213]Previous ]
First some quick checks for problems that can be easily corrected by
recompiling with different options:
a. Start C-Kermit (usually by typing "./wermit" in the directory where
you ran the makefile). Do you see the C-Kermit> prompt? If not,
C-Kermit incorrectly deduced that it was running in the background.
- The test is in conbgt() in [211]ckutio.c. If you can fix it for
+ The test is in conbgt() in [214]ckutio.c. If you can fix it for
your system, please send in the fix (Hint: read about "PID_T"
below). Otherwise, you can force C-Kermit to foreground mode by
starting it with the -z command line option, as in "kermit -z", or
giving the interactive command SET BACKGROUND OFF.
b. When you type characters at the C-Kermit prompt, do they echo
immediately? If not, something is wrong with concb() and probably
- the other terminal mode settings routines in [212]ckutio.c. Be sure
+ the other terminal mode settings routines in [215]ckutio.c. Be sure
you have used the most appropriate make entry.
c. At the C-Kermit> prompt, type "send ./?". C-Kermit should list all
the files in the current directory. If not, it was built for the
d. CD to a directory that contains a variety of files, symlinks, and
subdirectories and give a DIRECTORY command at the C-Kermit>
prompt. Do the permissions, size, and date appear correct? If not
- see [213]Section 4.0.
+ see [216]Section 4.0.
e. Assuming your platform supports long file names, create a file with
a long name in your current directory, e.g.:
f. Make sure that Kermit has the maximum path length right. Just type
SHOW FILE and see what it says about this. If it is too short,
there could be some problems at runtime. To correct, look in
- [214]ckcdeb.h to see how the symbol CKMAXPATH is set and make any
+ [217]ckcdeb.h to see how the symbol CKMAXPATH is set and make any
needed adjustments.
g. Send a file to your new Kermit program from a different Kermit
program that is known to work. Is the date/timestamp of the new
file identical to the original? If not, adjustments are needed in
- zstrdt() in [215]ckufio.c.
+ zstrdt() in [218]ckufio.c.
h. Go to another computer (Computer B) from which you can send files
to C-Kermit. Connect Computer B to the computer (A) where you are
testing C-Kermit. Then:
i. Send a file from B to A. Make sure it transferred OK and was
- created with the the right name.
+ created with the right name.
j. Send a file from B to A, specifying an "as-name" that is very, very
long (longer than the maximum name length on computer A). Check to
make sure that the file was received OK and that its name was
truncated to Computer A's maximum length. If not, check the
- MAXNAMLEN definition in [216]ckufio.c.
+ MAXNAMLEN definition in [219]ckufio.c.
k. Tell C-Kermit on Computer A to "set receive pathnames relative" and
then send it a file from Computer B specifying an as-name that
contains several directory segments:
became totally frozen, then you are probably running C-Kermit on a
Unix version that supports job control, but under a shell that
doesn't. If that's not the case, look in the congm() and psuspend()
- routines in [217]ckutio.c and see if you can figure out what's
+ routines in [220]ckutio.c and see if you can figure out what's
wrong. If you can't, rebuild with -DNOJC.
o. Give a SET LINE command for a dialout device, e.g. "set line
- /dev/tty00". If you got some kind of permission or accesss denied
- message, go read [218]Section 10 and then come back here.
+ /dev/tty00". If you got some kind of permission or access denied
+ message, go read [221]Section 10 and then come back here.
p. After giving a successful SET LINE command, type "show comm" to see
the communication parameters. Do they make sense?
q. Type "set speed ?" and observe the list of available speeds. Is it
- what you expected? If not, see [219]Section 2) of the
- [220]Configurations Options document.
+ what you expected? If not, see [222]Section 2) of the
+ [223]Configurations Options document.
r. Give a SET SPEED command to change the device's speed. Did it work?
(Type "show comm" again to check.)
s. Try dialing out: SET MODEM TYPE , SET LINE , SET SPEED , DIAL . If
w. If your version was built with fullscreen file transfer display
support, check that it works during local-mode file transfer. Also,
check C-Kermit's operation afterwards: is the echoing funny? etc
- etc. If there are problems, see [221]Section 4.
+ etc. If there are problems, see [224]Section 4.
x. If your version was built with script programming language support,
TAKE the ckedemo.ksc file to give it a workout.
y. Does C-Kermit interlock correctly with UUCP-family programs (cu,
- tip, uucp, etc)? If not, read the section [222]DIALING OUT AND
+ tip, uucp, etc)? If not, read the section [225]DIALING OUT AND
COORDINATING WITH UUCP below.
z. Modem signals... Give a SET LINE command to a serial device and
then type the SHOW MODEM command. If it says "Modem signals
unavailable in this version of Kermit", then you might want to look
- at the ttgmdm() routine in [223]ckutio.c and add the needed code --
+ at the ttgmdm() routine in [226]ckutio.c and add the needed code --
if indeed your version of Unix provides a way to get modem signals
(some don't; e.g. modem signals are a foreign concept to POSIX,
requiring politically incorrect workarounds).
To test, SET LINE , SET MODEM NONE, and HANGUP. The DTR light
should go out momentarily. If it doesn't, see if you can add the
needed code for your system to the tthang() routine in
- [224]ckutio.c.
+ [227]ckutio.c.
ac. If your version of Kermit has the SET FLOW RTS/CTS command, check
to see if it works: give Kermit this command, set your modem for
RTS/CTS, transfer some files (using big packet and window sizes)
off (and Kermit does not get packet errors), then it works. If your
version of Kermit does not have this command, but your version of
Unix does support hardware flow control, take a look at the
- tthflow() command in [225]ckutio.c and see if you can add the
- needed code (see the section on [226]HARDWARE FLOW CONTROL below).
- (And please [227]send back any added code, so that others can
+ tthflow() command in [228]ckutio.c and see if you can add the
+ needed code (see the section on [229]HARDWARE FLOW CONTROL below).
+ (And please [230]send back any added code, so that others can
benefit from it and it can be carried forward into future
releases.)
ad. If C-Kermit starts normally and issues its prompt, echoing is
normal, etc, but then after returning from a CONNECT session, the
prompt no longer appears, try rebuilding with -DCKCONINTB4CB.
ae. (8.0.206 or later) Type some commands at the C-Kermit prompt. Can
- you use the Up-arrow and Down-arrow keys on your keyboard to
- accesss Kermit's command history? If not, and you're a programmer,
- take a look at the USE_ARROWKEYS sections of ckucmd.c.
+ you use the Up-arrow and Down-arrow keys on your keyboard to access
+ Kermit's command history? If not, and you're a programmer, take a
+ look at the USE_ARROWKEYS sections of ckucmd.c.
8. REDUCING THE SIZE OF THE EXECUTABLE PROGRAM IMAGE
- [ [228]Top ] [ [229]Contents ] [ [230]Next ] [ [231]Previous ]
+ [ [231]Top ] [ [232]Contents ] [ [233]Next ] [ [234]Previous ]
- Also see: [232]C-Kermit Configuration Options
+ Also see: [235]C-Kermit Configuration Options
a. Many of C-Kermit's options and features can be deselected at
compile time. The greatest savings at the least sacrifice in
functionality is to disable the logging of debug information by
- defining NODEBUG during compilation. See the [233]Configurations
+ defining NODEBUG during compilation. See the [236]Configurations
Options document for further information.
b. Use shared libraries rather than static linking. This is the
default on many Unix systems anyway. However, executables built for
9. UNIX VERSIONS
- [ [234]Top ] [ [235]Contents ] [ [236]Next ] [ [237]Previous ]
+ [ [237]Top ] [ [238]Contents ] [ [239]Next ] [ [240]Previous ]
SECTION CONTENTS
-9.1 [238]Standards
- 9.1.1. [239]POSIX
- 9.1.2. [240]ANSI C
- 9.1.3. [241]Other Standards
-9.2. [242]Library Issues
-9.3. [243]Unix File System Peculiarities
-9.4. [244]Hardware Flow Control
-9.5. [245]Terminal Speeds
-9.6. [246]Millisecond Sleeps
-9.7. [247]Nondestructive Input Buffer Peeking
-9.8. [248]Other System-Dependent Features
-9.9. [249]Terminal Interruption
+9.1 [241]Standards
+ 9.1.1. [242]POSIX
+ 9.1.2. [243]ANSI C
+ 9.1.3. [244]Other Standards
+9.2. [245]Library Issues
+9.3. [246]Unix File System Peculiarities
+9.4. [247]Hardware Flow Control
+9.5. [248]Terminal Speeds
+9.6. [249]Millisecond Sleeps
+9.7. [250]Nondestructive Input Buffer Peeking
+9.8. [251]Other System-Dependent Features
+9.9. [252]Terminal Interruption
There are several major varieties of Unix: Bell Laboratories Seventh
Edition, AT&T System V, Berkeley Standard Distribution (BSD), and
APIs to get at serial speeds higher than 38400, but then doing so
removes hardware flow control -- just when we need it most! In cases
like this, dirty tricks are the only recourse (search for SCO_OSR504 in
- [250]ckutio.c for examples).
+ [253]ckutio.c for examples).
For reasons like this, Unix implementations tend to be neither pure
AT&T nor pure BSD nor pure POSIX, but a mixture of two or more of
9.1. Standards
- [ [251]Top ] [ [252]Section Contents ] [ [253]Contents ] [ [254]Next ]
+ [ [254]Top ] [ [255]Section Contents ] [ [256]Contents ] [ [257]Next ]
SUBSECTION CONTENTS
-9.1.1. [255]POSIX
-9.1.2. [256]ANSI C
-9.1.3. [257]Other Standards
+9.1.1. [258]POSIX
+9.1.2. [259]ANSI C
+9.1.3. [260]Other Standards
In edits 166-167 (1988-89), C-Kermit was heavily modified to try to
keep abreast of new standards while still remaining compatible with old
have some degree of POSIX compliance, but still use BSD or AT&T
specific features.
- The dilimma is this: it is often necessary to define _POSIX_SOURCE to
+ The dilemma is this: it is often necessary to define _POSIX_SOURCE to
get at new or modern features, such as high serial speeds and the APIs
to deal with them. But defining _POSIX_SOURCE also hides other APIs
that Kermit needs, for example the ones dealing with modem signals
9.1.2. ANSI C
- [ [258]Top ] [ [259]Contents ] [ [260]Section Contents ] [
- [261]Subsection Contents ] [ [262]Next ] [ [263]Previous ]
+ [ [261]Top ] [ [262]Contents ] [ [263]Section Contents ] [
+ [264]Subsection Contents ] [ [265]Next ] [ [266]Previous ]
The major difference between ANSI C and earlier C compilers is function
prototyping. ANSI C allows function arguments to be checked for type
9.1.3. Other Standards
- [ [264]Top ] [ [265]Contents ] [ [266]Section Contents ] [
- [267]Subsection Contents ] [ [268]Next ] [ [269]Previous ]
+ [ [267]Top ] [ [268]Contents ] [ [269]Section Contents ] [
+ [270]Subsection Contents ] [ [271]Next ] [ [272]Previous ]
As the years go by, standards with-which-all-must-comply continue to
pile up: AES, XPG2, XPG3, XPG4, FIPS 151-2, successive generations of
POSIX, OSF/1, X/Open, Spec 1170, UNIX95, Open Group UNIX98, ISO/IEC
9945 parts 1-4, ISO 9899, 88Open, OS 99, Single Unix Specification
- (SUS, [270]IEEE 1003.1-2001, not to mention "mature standards" like V7,
+ (SUS, [273]IEEE 1003.1-2001, not to mention "mature standards" like V7,
4.2/4.3BSD, System V R3 and R4 (SVID2 and SVID3), 4.4BSD (the basis for
BSDI, OpenBSD, NetBSD, FreeBSD, Mac OS X etc), /usr/group, plus
assorted seismic pronouncements of the neverending series of ephemeral
None of these standards simplifies life for portable applications like
C-Kermit -- each one is simply one more environment to support (or
circumvent, as in many cases these standards do more harm than good by
- denying accesss to facilities we need, e.g. as noted in above in
- [271]9.1.1).
+ denying access to facilities we need, e.g. as noted in above in
+ [274]9.1.1).
9.2. Library Issues
- [ [272]Top ] [ [273]Contents ] [ [274]Section Contents ] [
- [275]Subsection Contents ] [ [276]Next ] [ [277]Previous ]
+ [ [275]Top ] [ [276]Contents ] [ [277]Section Contents ] [
+ [278]Subsection Contents ] [ [279]Next ] [ [280]Previous ]
On most modern platforms, applications are -- and often must be --
dynamically linked. This has numerous advantages (smaller executables,
9.3. Unix File System Peculiarities
- [ [278]Top ] [ [279]Contents ] [ [280]Section Contents ] [ [281]Next ]
- [ [282]Previous ]
+ [ [281]Top ] [ [282]Contents ] [ [283]Section Contents ] [ [284]Next ]
+ [ [285]Previous ]
Normally, including a BSD, System-V, POSIX, or DIRENT flag in the make
entry selects the right file system code. But some versions of Unix are
to your makefile target.
Another problem child is <sys/file.h>. Most Unix C-Kermit versions need
- to #include this file from within [283]ckufio.c and [284]ckutio.c, but
+ to #include this file from within [286]ckufio.c and [287]ckutio.c, but
some not only do not need to include it, but MUST not include it
because (a) it doesn't exist, or (b) it has already been included by
some other header file and it doesn't protect itself against multiple
attribute packet, if any. If you find that the dates are set
incorrectly, you might need to build Kermit with the -DSYSUTIMEH flag,
to tell it to include <sys/utime.h>. If that doesn't help, look at the
- code in zstrdt() in [285]ckufio.c.
+ code in zstrdt() in [288]ckufio.c.
9.4. Hardware Flow Control
- [ [286]Top ] [ [287]Contents ] [ [288]Section Contents ] [ [289]Next ]
- [ [290]Previous ]
+ [ [289]Top ] [ [290]Contents ] [ [291]Section Contents ] [ [292]Next ]
+ [ [293]Previous ]
Hardware flow control is a problematic concept in many popular Unix
implementations. Often it is lacking altogether, and when available,
b. RTS/CTS flow control support MIGHT be available for System V R3 and
later if /usr/include/termiox.h exists (its successful operation
also depends on the device driver, and the device itself, not to
- mention the [291]cable, etc, actually supporting it). If your
+ mention the [294]cable, etc, actually supporting it). If your
SVR3-or-later Unix system does have this file, add:
-DTERMIOX
device name must be used. (NeXTSTEP: /dev/cufa instead of /dev/cua;
IRIX: /dev/ttyf00)
- See the routine tthflow() in [292]ckutio.c for details. If you find
+ See the routine tthflow() in [295]ckutio.c for details. If you find
that your system offers hardware flow control selection under program
control, you can add this capability to C-Kermit as follows:
a. See if it agrees with one of the methods already used in tthflow().
if not, add new code, appropriately #ifdef'd.
b. Add -DCK_RTSCTS to the compiler CFLAGS in your makefile target or
- define this symbol within the appropriate #ifdefs in [293]ckcdeb.h.
+ define this symbol within the appropriate #ifdefs in [296]ckcdeb.h.
To illustrate the difficulties with RTS/CTS, here is a tale from Jamie
Watson <jw@adasoft.ch>, who added the RTS/CTS code for the RS/6000,
9.5. Terminal Speeds
- [ [294]Top ] [ [295]Contents ] [ [296]Section Contents ] [ [297]Next ]
- [ [298]Previous ]
+ [ [297]Top ] [ [298]Contents ] [ [299]Section Contents ] [ [300]Next ]
+ [ [301]Previous ]
The allowable speeds for the SET SPEED command are defined in
- [299]ckcdeb.h. If your system supports speeds that are not listed in
+ [302]ckcdeb.h. If your system supports speeds that are not listed in
"set speed ?", you can add definitions for them to ckcdeb.h.
Then if the speed you are adding is one that was never used before in
Kermit, such as 921600, you'll also need to add the appropriate
- keywords to spdtab[] in [300]ckuus3.c, and the corresponding case to
- ttsspd() in [301]ckutio.c.
+ keywords to spdtab[] in [303]ckuus3.c, and the corresponding case to
+ ttsspd() in [304]ckutio.c.
9.6. Millisecond Sleeps
- [ [302]Top ] [ [303]Contents ] [ [304]Section Contents ] [ [305]Next ]
- [ [306]Previous ]
+ [ [305]Top ] [ [306]Contents ] [ [307]Section Contents ] [ [308]Next ]
+ [ [309]Previous ]
There is no standard for millisecond sleeps, but at least five
different functions have appeared in various Unix versions that can be
9.7. Nondestructive Input Buffer Peeking
- [ [307]Top ] [ [308]Contents ] [ [309]Section Contents ] [ [310]Next ]
- [ [311]Previous ]
+ [ [310]Top ] [ [311]Contents ] [ [312]Section Contents ] [ [313]Next ]
+ [ [314]Previous ]
Some AT&T Unix versions have no way to check if input is waiting on a
tty device, but this is a very important feature for Kermit. Without
9.8. Other System-Dependent Features
- [ [312]Top ] [ [313]Contents ] [ [314]Section Contents ] [ [315]Next ]
- [ [316]Previous ]
+ [ [315]Top ] [ [316]Contents ] [ [317]Section Contents ] [ [318]Next ]
+ [ [319]Previous ]
Systems with <termios.h> might have the symbol IEXTEN defined. This is
used to turn "extended features" in the tty device driver on and off,
characters, etc.
In most Unix implementations, it should be turned off during Kermit
- operation, so if [317]ckutio.c finds this symbol, it uses it. This is
+ operation, so if [320]ckutio.c finds this symbol, it uses it. This is
necessary, at least, on BSDI. On some systems, however, IEXTEN is
either misdefined or misimplemented. The symptom is that CR, when typed
to the command processor, is echoed as LF, rather than CRLF. This
In edits 177 and earlier, workstation users noticed a "slow screen
writing" phenomenon during interactive command parsing. This was traced
- to a setbuf() call in [318]ckutio.c that made console (stdout) writes
+ to a setbuf() call in [321]ckutio.c that made console (stdout) writes
unbuffered. This setbuf() call has been there forever, and could not be
removed without some risk. Kermit's operation was tested on the NeXT in
edit 178 with the setbuf() call removed, and the slow-writing symptom
-DRENAME
C-Kermit predefines the RENAME for several Unix versions in
- [319]ckcdeb.h (SVR4, SUNOS41, BSD44, AIXRS, etc). You can tell if
+ [322]ckcdeb.h (SVR4, SUNOS41, BSD44, AIXRS, etc). You can tell if
rename() is being used if the SHOW FEATURES command includes RENAME in
the compiler options list. If the predefined RENAME symbol causes
trouble, then add NORENAME to your CFLAGS. Trouble includes:
Some Unix systems (Olivetti X/OS, Amdahl UTS/V, ICL SVR3, etc) define
the S_ISREG and S_ISDIR macros incorrectly. This is compensated for
- automatically in [320]ckufio.c. Other systems might have this same
+ automatically in [323]ckufio.c. Other systems might have this same
problem. If you get a compile-time error message regarding S_ISREG
and/or S_ISDIR, add the following to your CFLAGS:
9.9. Terminal Interruption
- [ [321]Top ] [ [322]Contents ] [ [323]Section Contents ] [ [324]Next ]
- [ [325]Previous ]
+ [ [324]Top ] [ [325]Contents ] [ [326]Section Contents ] [ [327]Next ]
+ [ [328]Previous ]
When C-Kermit enters interactive command mode, it sets a Control-C
(terminal keyboard interrupt = SIGINT) trap to allow it to return to
10. DIALING OUT AND COORDINATING WITH UUCP
- [ [326]Top ] [ [327]Contents ] [ [328]Next ] [ [329]Previous ]
+ [ [329]Top ] [ [330]Contents ] [ [331]Next ] [ [332]Previous ]
The short version (general):
Since Red Hat 7.2, about 2002, Linux does not leave the lockfile
handling to each application, but instead provides an external
application, /usr/sbin/lockdev, that all applications should invoke
- when they need to accesss a serial port; lockdev locks and unlocks
+ when they need to access a serial port; lockdev locks and unlocks
the port without requiring the application to have privileges, since
the privileges on the lockfile directory are assigned to lockdev.
C-Kermit 8.0.211 and later support this method. But C-Kermit still
needs to be able to open the port itself, and therefore if the
- port's permissions do not allow read/write accesss to the general
+ port's permissions do not allow read/write access to the general
public, the general rule must still be followed: in the most common
case, it must be SETGID to the group uucp (explained below). If a
pre-8.0.211 version of C-Kermit is to be installed for use with
Peripheral Devices => Terminals and Modems => Add Modem).
Unlike most other multiuser, multitasking operating systems, Unix
- allows multiple users to accesss the same serial device at the same
+ allows multiple users to access the same serial device at the same
time, even though there is no earthly reason why two users should do
this. When they do, user A will read some of the incoming characters,
and user B will read the others. In all likelihood, neither user will
see them all. Furthermore, User B can hang up User A's call, and so
one.
- Rather than change Unix to enforce exclusive accesss to serial devices
+ Rather than change Unix to enforce exclusive access to serial devices
such as ttys, when it might still have been possible, Unix developers
opted for a "lock file" mechanism. Any process that wants to open a tty
device should first check to see if a file of a certain name exists,
* PIDs recycle. If the lockfile was created by PID 1234, which later
crashed without removing the lockfile, and then a new process 1234
exists a the time the lockfile is checked, the lockfile will be
- improperly taken as valid, and accesss to the device denied
+ improperly taken as valid, and access to the device denied
unnecessarily.
Several techniques address the problem of multiple names for the same
lockfile itself is called, and what its contents should be. In most
cases, C-Kermit preprocessor flags create the appropriate configuration
at compile time if the appropriate makefile target was used (see
- [330]ckutio.c). The following CFLAGS options can be used to override
+ [333]ckutio.c). The following CFLAGS options can be used to override
the built-in configuration:
-DLCKDIR
means that you have SET CARRIER ON xx, where xx is the number of
seconds to wait for carrier, and carrier did not appear within xx
seconds. Solution: SET CARRIER AUTO or OFF.
- b. "Sorry, accesss to lock denied." Kermit has been configured to use
+ b. "Sorry, access to lock denied." Kermit has been configured to use
lockfiles, but (a)the lockfile directory is write-protected against
- you, or (b) it does not exist. The "accesss to lock denied" message
+ you, or (b) it does not exist. The "access to lock denied" message
will tell you the reason. If the directory does not exist, check to
make sure Kermit is using the right name. Just because version n of
your Unix used a certain lockfile directory is no guarantee that
version n.1 does not use a different one. Workaround: ask the
system administrator to install a symbolic link from the old name
to the new name. Other solutions: (see below)
- c. "Sorry, accesss to tty device denied." The tty device that you
+ c. "Sorry, access to tty device denied." The tty device that you
specified in your SET LINE command is read/write protected against
you. Solution: (see below)
d. "Sorry, device is in use." The tty device you have specified is
telephone calls are not controlled -- anybody on your system can
make them, without having to belong to any particular group, and
this could run up your phone bill.
- b. Use groups to regulate accesss. Normally the lockfile directory and
+ b. Use groups to regulate access. Normally the lockfile directory and
and the dialout devices will have the same group (such as uucp). If
so, then put everybody who's allowed to dial out into that group,
and make sure that the lockfile directory and the tty devices have
the appropriate group (e.g. edit the /etc/group file).
c. Have the superuser change Kermit to run setuid and/or setgid to the
owner and/or group of the lockfile directory and the tty devices if
- necessary), typically uucp (see [331]next section), but NOT root.
+ necessary), typically uucp (see [334]next section), but NOT root.
Example:
su% chown uucp kermit - or - chgrp uucp kermit
su% chown uucp /dev/ttyXX ; chmod 600 /dev/ttyXX
In some cases, the owner and group must be distinct; the key point
- is that read/write accesss is required to both the UUCP lockfile
+ is that read/write access is required to both the UUCP lockfile
directory and the tty itself.
If you make C-Kermit setuid or setgid to root, it refuses to run:
crw-r----- 1 uucp uucp 5, 67 Feb 11 06:23 /dev/cua3
drwxrwxr-x 3 root uucp 1024 Feb 11 06:22 /var/lock
- requires suid uucp to get read/write accesss on /dev/cua3 and sgid to
- get read/write accesss on /var/lock (since you can't set Kermit's uid
- or gid to root).
+ requires suid uucp to get read/write access on /dev/cua3 and sgid to
+ get read/write access on /var/lock (since you can't set Kermit's uid or
+ gid to root).
The reason Kermit can't be setuid or setgid to root has to do with
the fact that some Unix OS's can't switch user or group IDs in that
setgid to root means that Unix C-Kermit can't be used to make rlogin
connections by non-root users. (The rlogin port is privileged, which
is why the regular rlogin command is setuid root -- which is safe
- because the rlogin program never has to create or accesss files like
+ because the rlogin program never has to create or access files like
Kermit does.)
For the lockfile mechanism to achieve its desired purpose -- prevention
- of accesss to the same tty device by more than one process at a time --
+ of access to the same tty device by more than one process at a time --
ALL programs on a given computer that open, read or write, and close
tty devices must use the SAME lockfile conventions. Unfortunately, this
is often not the case. Here is a typical example of how this can go
a. If there may be more than one person running Kermit at the same
time, competing for the same tty device, then create a special
lockfile directory just for Kermit, for example, /usr/spool/kermit,
- and make sure you have read/write accesss to it. Then add the
+ and make sure you have read/write access to it. Then add the
following to your makefile target CFLAGS, as shown earlier:
-DLOCK_DIR=\\\"/usr/spool/kermit\\\"
11. RUNNING UNIX C-KERMIT SETUID OR SETGID
- [ [332]Top ] [ [333]Contents ] [ [334]Next ] [ [335]Previous ]
+ [ [335]Top ] [ [336]Contents ] [ [337]Next ] [ [338]Previous ]
Even if you don't intend to run C-Kermit setuid, somebody else might
come along and chown and chmod it after it has been built. You should
IMPORTANT NOTE: Most Unix system documentation will not give you the
required information. To determine whether your Unix system supplies
- the the saved-original-effective-user/group-id feature, use the
- ckuuid.c program. Read and follow the instructions in the comments
- at the beginning.
+ the saved-original-effective-user/group-id feature, use the ckuuid.c
+ program. Read and follow the instructions in the comments at the
+ beginning.
C-Kermit for 4.4BSD-based systems automatically use sete[ug]id(). See
- [336]ckutio.c.
+ [339]ckutio.c.
If you have a version of Unix that is not BSD-based, but which supplies
the setreuid() and setregid() functions, and these are the only way to
switch between real and effective uid, add -DSETREUID to your makefile
target.
- WARNING: There are two calls to accesss() in [337]ckufio.c, by which
+ WARNING: There are two calls to access() in [340]ckufio.c, by which
Kermit checks to see if it can create an output file. These calls
will not work correctly when (a)you have installed C-Kermit setuid
or setgid on a BSD-based Unix system, and (b) the
saved-original-effective-uid/gid feature is not present, and (c) the
- accesss() function always checks what it believes to be the real ID
+ access() function always checks what it believes to be the real ID
rather than the effective ID. This is the case, for example, in
Olivetti X/OS and in NeXTSTEP. In such cases, you can force correct
- operation of accesss() calls by defining the symbol SW_ACC_ID at
+ operation of access() calls by defining the symbol SW_ACC_ID at
compile time in CFLAGS.
If you have a version of Unix that does not allow a process to switch
MORAL: Are you thoroughly sickened and/or frightened by all that you
have just read? You should be. What is the real answer? Simple. Serial
devices -- such as ttys and magnetic tapes -- in Unix should be opened
- with exclusive accesss only, enforced by the Unix kernel. Shared
- accesss has no conceivable purpose, legitimate or otherwise, except by
+ with exclusive access only, enforced by the Unix kernel. Shared access
+ has no conceivable purpose, legitimate or otherwise, except by
privileged system programs such as getty. The original design dates
from the late 1960s, when Unix was developed for laboratory use under a
philosophy of trust by people within shouting distance of each other --
emergence of Unix from the laboratory into the commercial market, we
have seen every vestige of openness -- but this one -- stripped away.
I'd like to see some influential Unix maker take the bold step of
- making the simple kernel change required to enforce exclusive accesss
- to serial devices. (Well, perhaps not so simple when bidirectionality
- must also be a goal -- but then other OS's like VMS solved this problem
+ making the simple kernel change required to enforce exclusive access to
+ serial devices. (Well, perhaps not so simple when bidirectionality must
+ also be a goal -- but then other OS's like VMS solved this problem
decades ago.)
12. CONFIGURING UNIX WORKSTATIONS
- [ [338]Top ] [ [339]Contents ] [ [340]Next ] [ [341]Previous ]
+ [ [341]Top ] [ [342]Contents ] [ [343]Next ] [ [344]Previous ]
On desktop workstations that are used by only the user at the console
keyboard, C-Kermit is always used in local mode. But as delivered,
13. BIZARRE BEHAVIOR AT RUNTIME
- [ [342]Top ] [ [343]Contents ] [ [344]Next ] [ [345]Previous ]
+ [ [345]Top ] [ [346]Contents ] [ [347]Next ] [ [348]Previous ]
See the "beware file",
- [346]ckubwr.txt, for hints about runtime misbehavior. This section
+ [349]ckubwr.txt, for hints about runtime misbehavior. This section
lists some runtime problems that can be cured by rebuilding C-Kermit.
The program starts, but there is no prompt, and certain operations
don't work (you see error messages like "Kermit command error in
background execution"). This is because Kermit thinks it is running in
- the background. See conbgt() in [347]ckutio.c. Try rebuilding Kermit
+ the background. See conbgt() in [350]ckutio.c. Try rebuilding Kermit
with:
-DPID_T=pid_t
14. CRASHES AND CORE DUMPS
- [ [348]Top ] [ [349]Contents ] [ [350]Next ] [ [351]Previous ]
+ [ [351]Top ] [ [352]Contents ] [ [353]Next ] [ [354]Previous ]
If C-Kermit consistently dumps core at the beginning of a file
transfer, look in SHOW FEATURES for CKREALPATH. If found, rebuild with
15. SYSLOGGING
- [ [352]Top ] [ [353]Contents ] [ [354]Next ] [ [355]Previous ]
+ [ [355]Top ] [ [356]Contents ] [ [357]Next ] [ [358]Previous ]
"Syslogging" means recording selected information in the system log via
the Unix syslog() facility, which is available in most Unix versions.
--syslog:n
on the command-line, where n is a number greater than 0 to indicate the
- level of syslogging. See [356]Section 4.2 of the [357]IKSD
+ level of syslogging. See [359]Section 4.2 of the [360]IKSD
Administrator's Guide for details.
Obviously you can't depend on users to include --syslog:3 (or whatever)
out from your system, and to where, e.g. for security auditing.
Level 2 and 3 records are equivalent to those in the connection log;
- see the [358]C-Kermit 7.0 Supplement) for a detailed description of the
+ see the [361]C-Kermit 7.0 Supplement) for a detailed description of the
connection log.
16. BUILDING SECURE VERSIONS OF C-KERMIT 8.0
- [ [359]Top ] [ [360]Contents ] [ [361]Next ] [ [362]Previous ]
+ [ [362]Top ] [ [363]Contents ] [ [364]Next ] [ [365]Previous ]
C-Kermit 7.0 and later may be built with Kerberos(TM) and/or SRP(TM)
(Secure Remote Password) and/or SSL/TLS security for strong
authentication and encryption of Internet connections. These security
methods require external libraries that, in their binary forms, are
- restricted from export by USA law. See the [363]Kermit Security
+ restricted from export by USA law. See the [366]Kermit Security
Reference) for details. C-Kermit binaries themselves are likewise
restricted; the C-Kermit binaries that are available for public
download on the Internet are not allowed to contain the security
Sample makefile entries are provided for Linux and many other operating
systems. A list of secure makefile entries is included in the Makefile.
Complete instructions on building C-Kermit 8.0 with MIT Kerberos;
- Secure Remote Password; and/or OpenSSL can be found in the [364]Kermit
+ Secure Remote Password; and/or OpenSSL can be found in the [367]Kermit
Security Reference.
SSL/TLS and Kerberos builds are increasingly problematic with the
toolsets.) Perhaps certain targets could be converted to use them,
especially Linux because there are so many variations among
distributions and versions. Anybody who wants to make, say, an
- Autonf-based Linux target, be my guest, but bear in mind that one
+ Autoconf-based Linux target, be my guest, but bear in mind that one
Linux target is supposed to work for all versions and distributions
of Linux on all platforms. Well, one target for Linux by itself,
another for Linux with OpenSSL, another for Linux with Kerberos 5,
17. INSTALLING C-KERMIT AS AN SSH SERVER SUBSYSTEM
- [ [365]Top ] [ [366]Contents ] [ [367]Previous ]
+ [ [368]Top ] [ [369]Contents ] [ [370]Previous ]
This requires C-Kermit 8.0.206 or later and an SSH v2 server. If you
list C-Kermit as a Subsystem in the SSH v2 server configuration file
(as, for example, SFTP is listed), users can make SSH connections
direct to a Kermit server as explained here:
-[368]http://www.columbia.edu/kermit/skermit.html
+[371]http://www.columbia.edu/kermit/skermit.html
The name and location of the SSH server configuration file depends on
your platform, which SSH product(s) you have, etc. C-Kermit itself must
C-Kermit would have no way of knowing that it should enter Server mode
if it were not called by a special name.
- [ [369]Top ] [ [370]Contents ] [ [371]C-Kermit Home ] [ [372]C-Kermit
- 9.0 Overview ] [ [373]Kermit Home ]
+ [ [372]Top ] [ [373]Contents ] [ [374]C-Kermit Home ] [ [375]C-Kermit
+ 9.0 Overview ] [ [376]Kermit Home ]
__________________________________________________________________
181. ftp://kermit.columbia.edu/kermit/c-kermit/ckermit80.txt
182. http://www.columbia.edu/kermit/ck60manual.html
183. http://www.columbia.edu/kermit/ckermit80.html
- 184. ftp://kermit.columbia.edu/kermit/c-kermit/ckcbwr.txt
- 185. http://www.columbia.edu/kermit/ckcbwr.html
- 186. ftp://kermit.columbia.edu/kermit/c-kermit/ckubwr.txt
- 187. http://www.columbia.edu/kermit/ckubwr.html
- 188. ftp://kermit.columbia.edu/kermit/c-kermit/ckuins.txt
- 189. http://www.columbia.edu/kermit/ckuins.html
- 190. ftp://kermit.columbia.edu/kermit/c-kermit/ckccfg.txt
- 191. http://www.columbia.edu/kermit/ckccfg.html
- 192. ftp://kermit.columbia.edu/kermit/c-kermit/ckcplm.txt
- 193. http://www.columbia.edu/kermit/ckcplm.html
- 194. ftp://kermit.columbia.edu/kermit/c-kermit/ca_certs.pem
- 195. http://www.columbia.edu/kermit/ckuins.html#x16"
- 196. ftp://kermit.columbia.edu/kermit/c-kermit/makefile
- 197. http://www.columbia.edu/kermit/ckuins.html#x?
- 198. http://www.columbia.edu/kermit/ckuins.html#x11
- 199. http://www.columbia.edu/kermit/ckuins.html#x5.2
- 200. http://www.columbia.edu/kermit/ckermit.html#download
- 201. http://www.columbia.edu/kermit/ck80binaries.html
- 202. http://www.columbia.edu/kermit/ckermit.html#download
- 203. http://www.columbia.edu/kermit/ckuins.html#top
- 204. http://www.columbia.edu/kermit/ckuins.html#contents
- 205. http://www.columbia.edu/kermit/ckuins.html#x7
- 206. http://www.columbia.edu/kermit/ckuins.html#x5
- 207. http://www.columbia.edu/kermit/ckuins.html#top
- 208. http://www.columbia.edu/kermit/ckuins.html#contents
- 209. http://www.columbia.edu/kermit/ckuins.html#x8
- 210. http://www.columbia.edu/kermit/ckuins.html#x6
- 211. ftp://kermit.columbia.edu/kermit/c-kermit/ckutio.c
- 212. ftp://kermit.columbia.edu/kermit/c-kermit/ckutio.c
- 213. http://www.columbia.edu/kermit/ckuins.html#x4.0
- 214. ftp://kermit.columbia.edu/kermit/c-kermit/ckcdeb.h
- 215. ftp://kermit.columbia.edu/kermit/c-kermit/ckufio.c
- 216. ftp://kermit.columbia.edu/kermit/c-kermit/ckufio.c
- 217. ftp://kermit.columbia.edu/kermit/c-kermit/ckutio.c
- 218. http://www.columbia.edu/kermit/ckuins.html#x10
- 219. http://www.columbia.edu/kermit/ckccfg.html#x2
- 220. http://www.columbia.edu/kermit/ckccfg.html
- 221. http://www.columbia.edu/kermit/ckuins.html#x4
- 222. http://www.columbia.edu/kermit/ckuins.html#x10
- 223. ftp://kermit.columbia.edu/kermit/c-kermit/ckutio.c
- 224. ftp://kermit.columbia.edu/kermit/c-kermit/ckutio.c
- 225. ftp://kermit.columbia.edu/kermit/c-kermit/ckutio.c
- 226. http://www.columbia.edu/kermit/ckuins.html#x9.4
- 227. mailto:kermit-support@columbia.edu
- 228. http://www.columbia.edu/kermit/ckuins.html#top
- 229. http://www.columbia.edu/kermit/ckuins.html#contents
- 230. http://www.columbia.edu/kermit/ckuins.html#x9
- 231. http://www.columbia.edu/kermit/ckuins.html#x7
- 232. http://www.columbia.edu/kermit/ckccfg.html
- 233. http://www.columbia.edu/kermit/ckccfg.html
- 234. http://www.columbia.edu/kermit/ckuins.html#top
- 235. http://www.columbia.edu/kermit/ckuins.html#contents
- 236. http://www.columbia.edu/kermit/ckuins.html#x10
- 237. http://www.columbia.edu/kermit/ckuins.html#x8
- 238. http://www.columbia.edu/kermit/ckuins.html#x9.1
- 239. http://www.columbia.edu/kermit/ckuins.html#x9.1.1
- 240. http://www.columbia.edu/kermit/ckuins.html#x9.1.2
- 241. http://www.columbia.edu/kermit/ckuins.html#x9.1.3
- 242. http://www.columbia.edu/kermit/ckuins.html#x9.2
- 243. http://www.columbia.edu/kermit/ckuins.html#x9.3
- 244. http://www.columbia.edu/kermit/ckuins.html#x9.4
- 245. http://www.columbia.edu/kermit/ckuins.html#x9.5
- 246. http://www.columbia.edu/kermit/ckuins.html#x9.6
- 247. http://www.columbia.edu/kermit/ckuins.html#x9.7
- 248. http://www.columbia.edu/kermit/ckuins.html#x9.8
- 249. http://www.columbia.edu/kermit/ckuins.html#x9.9
- 250. ftp://kermit.columbia.edu/kermit/c-kermit/ckutio.c
- 251. http://www.columbia.edu/kermit/ckuins.html#top
- 252. http://www.columbia.edu/kermit/ckuins.html#x9
- 253. http://www.columbia.edu/kermit/ckuins.html#contents
- 254. http://www.columbia.edu/kermit/ckuins.html#x9.2
- 255. http://www.columbia.edu/kermit/ckuins.html#x9.1.1
- 256. http://www.columbia.edu/kermit/ckuins.html#x9.1.2
- 257. http://www.columbia.edu/kermit/ckuins.html#x9.1.3
- 258. http://www.columbia.edu/kermit/ckuins.html#top
- 259. http://www.columbia.edu/kermit/ckuins.html#contents
- 260. http://www.columbia.edu/kermit/ckuins.html#x9
- 261. http://www.columbia.edu/kermit/ckuins.html#x9.1
- 262. http://www.columbia.edu/kermit/ckuins.html#x9.1.3
- 263. http://www.columbia.edu/kermit/ckuins.html#x9.1.1
- 264. http://www.columbia.edu/kermit/ckuins.html#top
- 265. http://www.columbia.edu/kermit/ckuins.html#contents
- 266. http://www.columbia.edu/kermit/ckuins.html#x9
- 267. http://www.columbia.edu/kermit/ckuins.html#x9.1
- 268. http://www.columbia.edu/kermit/ckuins.html#x9.2
- 269. http://www.columbia.edu/kermit/ckuins.html#x9.1.2
- 270. http://www.opengroup.org/onlinepubs/007904975/
- 271. http://www.columbia.edu/kermit/ckuins.html#x9.1.1
- 272. http://www.columbia.edu/kermit/ckuins.html#top
- 273. http://www.columbia.edu/kermit/ckuins.html#contents
- 274. http://www.columbia.edu/kermit/ckuins.html#x9
- 275. http://www.columbia.edu/kermit/ckuins.html#x9.1
- 276. http://www.columbia.edu/kermit/ckuins.html#x9.3
- 277. http://www.columbia.edu/kermit/ckuins.html#x9.1
- 278. http://www.columbia.edu/kermit/ckuins.html#top
- 279. http://www.columbia.edu/kermit/ckuins.html#contents
- 280. http://www.columbia.edu/kermit/ckuins.html#x9
- 281. http://www.columbia.edu/kermit/ckuins.html#x9.4
- 282. http://www.columbia.edu/kermit/ckuins.html#x9.2
- 283. ftp://kermit.columbia.edu/kermit/c-kermit/ckufio.c
- 284. ftp://kermit.columbia.edu/kermit/c-kermit/ckutio.c
- 285. ftp://kermit.columbia.edu/kermit/c-kermit/ckufio.c
- 286. http://www.columbia.edu/kermit/ckuins.html#top
- 287. http://www.columbia.edu/kermit/ckuins.html#contents
- 288. http://www.columbia.edu/kermit/ckuins.html#x9
- 289. http://www.columbia.edu/kermit/ckuins.html#x9.5
- 290. http://www.columbia.edu/kermit/ckuins.html#x9.3
- 291. http://www.columbia.edu/kermit/cable.html
- 292. ftp://kermit.columbia.edu/kermit/c-kermit/ckutio.c
- 293. ftp://kermit.columbia.edu/kermit/c-kermit/ckcdeb.h
- 294. http://www.columbia.edu/kermit/ckuins.html#top
- 295. http://www.columbia.edu/kermit/ckuins.html#contents
- 296. http://www.columbia.edu/kermit/ckuins.html#x9
- 297. http://www.columbia.edu/kermit/ckuins.html#x9.6
- 298. http://www.columbia.edu/kermit/ckuins.html#x9.4
- 299. ftp://kermit.columbia.edu/kermit/c-kermit/ckcdeb.h
- 300. ftp://kermit.columbia.edu/kermit/c-kermit/ckuus3.c
- 301. ftp://kermit.columbia.edu/kermit/c-kermit/ckutio.c
- 302. http://www.columbia.edu/kermit/ckuins.html#top
- 303. http://www.columbia.edu/kermit/ckuins.html#contents
- 304. http://www.columbia.edu/kermit/ckuins.html#x9
- 305. http://www.columbia.edu/kermit/ckuins.html#x9.7
- 306. http://www.columbia.edu/kermit/ckuins.html#x9.5
- 307. http://www.columbia.edu/kermit/ckuins.html#top
- 308. http://www.columbia.edu/kermit/ckuins.html#contents
- 309. http://www.columbia.edu/kermit/ckuins.html#x9
- 310. http://www.columbia.edu/kermit/ckuins.html#x9.8
- 311. http://www.columbia.edu/kermit/ckuins.html#x9.6
- 312. http://www.columbia.edu/kermit/ckuins.html#top
- 313. http://www.columbia.edu/kermit/ckuins.html#contents
- 314. http://www.columbia.edu/kermit/ckuins.html#x9
- 315. http://www.columbia.edu/kermit/ckuins.html#x9.9
- 316. http://www.columbia.edu/kermit/ckuins.html#x9.7
- 317. ftp://kermit.columbia.edu/kermit/c-kermit/ckutio.c
- 318. ftp://kermit.columbia.edu/kermit/c-kermit/ckutio.c
- 319. ftp://kermit.columbia.edu/kermit/c-kermit/ckcdeb.h
- 320. ftp://kermit.columbia.edu/kermit/c-kermit/ckufio.c
- 321. http://www.columbia.edu/kermit/ckuins.html#top
- 322. http://www.columbia.edu/kermit/ckuins.html#contents
- 323. http://www.columbia.edu/kermit/ckuins.html#x9
- 324. http://www.columbia.edu/kermit/ckuins.html#x10
- 325. http://www.columbia.edu/kermit/ckuins.html#x9.8
- 326. http://www.columbia.edu/kermit/ckuins.html#top
- 327. http://www.columbia.edu/kermit/ckuins.html#contents
- 328. http://www.columbia.edu/kermit/ckuins.html#x11
- 329. http://www.columbia.edu/kermit/ckuins.html#x9
- 330. ftp://kermit.columbia.edu/kermit/c-kermit/ckutio.c
+ 184. ftp://kermit.columbia.edu/kermit/c-kermit/ckermit90.txt
+ 185. http://www.columbia.edu/kermit/ck60manual.html
+ 186. http://www.columbia.edu/kermit/ckermit90.html
+ 187. ftp://kermit.columbia.edu/kermit/c-kermit/ckcbwr.txt
+ 188. http://www.columbia.edu/kermit/ckcbwr.html
+ 189. ftp://kermit.columbia.edu/kermit/c-kermit/ckubwr.txt
+ 190. http://www.columbia.edu/kermit/ckubwr.html
+ 191. ftp://kermit.columbia.edu/kermit/c-kermit/ckuins.txt
+ 192. http://www.columbia.edu/kermit/ckuins.html
+ 193. ftp://kermit.columbia.edu/kermit/c-kermit/ckccfg.txt
+ 194. http://www.columbia.edu/kermit/ckccfg.html
+ 195. ftp://kermit.columbia.edu/kermit/c-kermit/ckcplm.txt
+ 196. http://www.columbia.edu/kermit/ckcplm.html
+ 197. ftp://kermit.columbia.edu/kermit/c-kermit/ca_certs.pem
+ 198. http://www.columbia.edu/kermit/ckuins.html#x16"
+ 199. ftp://kermit.columbia.edu/kermit/c-kermit/makefile
+ 200. http://www.columbia.edu/kermit/ckuins.html#x?
+ 201. http://www.columbia.edu/kermit/ckuins.html#x11
+ 202. http://www.columbia.edu/kermit/ckuins.html#x5.2
+ 203. http://www.columbia.edu/kermit/ckermit.html#download
+ 204. http://www.columbia.edu/kermit/ckbinaries.html
+ 205. http://www.columbia.edu/kermit/ckermit.html#download
+ 206. http://www.columbia.edu/kermit/ckuins.html#top
+ 207. http://www.columbia.edu/kermit/ckuins.html#contents
+ 208. http://www.columbia.edu/kermit/ckuins.html#x7
+ 209. http://www.columbia.edu/kermit/ckuins.html#x5
+ 210. http://www.columbia.edu/kermit/ckuins.html#top
+ 211. http://www.columbia.edu/kermit/ckuins.html#contents
+ 212. http://www.columbia.edu/kermit/ckuins.html#x8
+ 213. http://www.columbia.edu/kermit/ckuins.html#x6
+ 214. ftp://kermit.columbia.edu/kermit/c-kermit/ckutio.c
+ 215. ftp://kermit.columbia.edu/kermit/c-kermit/ckutio.c
+ 216. http://www.columbia.edu/kermit/ckuins.html#x4.0
+ 217. ftp://kermit.columbia.edu/kermit/c-kermit/ckcdeb.h
+ 218. ftp://kermit.columbia.edu/kermit/c-kermit/ckufio.c
+ 219. ftp://kermit.columbia.edu/kermit/c-kermit/ckufio.c
+ 220. ftp://kermit.columbia.edu/kermit/c-kermit/ckutio.c
+ 221. http://www.columbia.edu/kermit/ckuins.html#x10
+ 222. http://www.columbia.edu/kermit/ckccfg.html#x2
+ 223. http://www.columbia.edu/kermit/ckccfg.html
+ 224. http://www.columbia.edu/kermit/ckuins.html#x4
+ 225. http://www.columbia.edu/kermit/ckuins.html#x10
+ 226. ftp://kermit.columbia.edu/kermit/c-kermit/ckutio.c
+ 227. ftp://kermit.columbia.edu/kermit/c-kermit/ckutio.c
+ 228. ftp://kermit.columbia.edu/kermit/c-kermit/ckutio.c
+ 229. http://www.columbia.edu/kermit/ckuins.html#x9.4
+ 230. mailto:kermit-support@columbia.edu
+ 231. http://www.columbia.edu/kermit/ckuins.html#top
+ 232. http://www.columbia.edu/kermit/ckuins.html#contents
+ 233. http://www.columbia.edu/kermit/ckuins.html#x9
+ 234. http://www.columbia.edu/kermit/ckuins.html#x7
+ 235. http://www.columbia.edu/kermit/ckccfg.html
+ 236. http://www.columbia.edu/kermit/ckccfg.html
+ 237. http://www.columbia.edu/kermit/ckuins.html#top
+ 238. http://www.columbia.edu/kermit/ckuins.html#contents
+ 239. http://www.columbia.edu/kermit/ckuins.html#x10
+ 240. http://www.columbia.edu/kermit/ckuins.html#x8
+ 241. http://www.columbia.edu/kermit/ckuins.html#x9.1
+ 242. http://www.columbia.edu/kermit/ckuins.html#x9.1.1
+ 243. http://www.columbia.edu/kermit/ckuins.html#x9.1.2
+ 244. http://www.columbia.edu/kermit/ckuins.html#x9.1.3
+ 245. http://www.columbia.edu/kermit/ckuins.html#x9.2
+ 246. http://www.columbia.edu/kermit/ckuins.html#x9.3
+ 247. http://www.columbia.edu/kermit/ckuins.html#x9.4
+ 248. http://www.columbia.edu/kermit/ckuins.html#x9.5
+ 249. http://www.columbia.edu/kermit/ckuins.html#x9.6
+ 250. http://www.columbia.edu/kermit/ckuins.html#x9.7
+ 251. http://www.columbia.edu/kermit/ckuins.html#x9.8
+ 252. http://www.columbia.edu/kermit/ckuins.html#x9.9
+ 253. ftp://kermit.columbia.edu/kermit/c-kermit/ckutio.c
+ 254. http://www.columbia.edu/kermit/ckuins.html#top
+ 255. http://www.columbia.edu/kermit/ckuins.html#x9
+ 256. http://www.columbia.edu/kermit/ckuins.html#contents
+ 257. http://www.columbia.edu/kermit/ckuins.html#x9.2
+ 258. http://www.columbia.edu/kermit/ckuins.html#x9.1.1
+ 259. http://www.columbia.edu/kermit/ckuins.html#x9.1.2
+ 260. http://www.columbia.edu/kermit/ckuins.html#x9.1.3
+ 261. http://www.columbia.edu/kermit/ckuins.html#top
+ 262. http://www.columbia.edu/kermit/ckuins.html#contents
+ 263. http://www.columbia.edu/kermit/ckuins.html#x9
+ 264. http://www.columbia.edu/kermit/ckuins.html#x9.1
+ 265. http://www.columbia.edu/kermit/ckuins.html#x9.1.3
+ 266. http://www.columbia.edu/kermit/ckuins.html#x9.1.1
+ 267. http://www.columbia.edu/kermit/ckuins.html#top
+ 268. http://www.columbia.edu/kermit/ckuins.html#contents
+ 269. http://www.columbia.edu/kermit/ckuins.html#x9
+ 270. http://www.columbia.edu/kermit/ckuins.html#x9.1
+ 271. http://www.columbia.edu/kermit/ckuins.html#x9.2
+ 272. http://www.columbia.edu/kermit/ckuins.html#x9.1.2
+ 273. http://www.opengroup.org/onlinepubs/007904975/
+ 274. http://www.columbia.edu/kermit/ckuins.html#x9.1.1
+ 275. http://www.columbia.edu/kermit/ckuins.html#top
+ 276. http://www.columbia.edu/kermit/ckuins.html#contents
+ 277. http://www.columbia.edu/kermit/ckuins.html#x9
+ 278. http://www.columbia.edu/kermit/ckuins.html#x9.1
+ 279. http://www.columbia.edu/kermit/ckuins.html#x9.3
+ 280. http://www.columbia.edu/kermit/ckuins.html#x9.1
+ 281. http://www.columbia.edu/kermit/ckuins.html#top
+ 282. http://www.columbia.edu/kermit/ckuins.html#contents
+ 283. http://www.columbia.edu/kermit/ckuins.html#x9
+ 284. http://www.columbia.edu/kermit/ckuins.html#x9.4
+ 285. http://www.columbia.edu/kermit/ckuins.html#x9.2
+ 286. ftp://kermit.columbia.edu/kermit/c-kermit/ckufio.c
+ 287. ftp://kermit.columbia.edu/kermit/c-kermit/ckutio.c
+ 288. ftp://kermit.columbia.edu/kermit/c-kermit/ckufio.c
+ 289. http://www.columbia.edu/kermit/ckuins.html#top
+ 290. http://www.columbia.edu/kermit/ckuins.html#contents
+ 291. http://www.columbia.edu/kermit/ckuins.html#x9
+ 292. http://www.columbia.edu/kermit/ckuins.html#x9.5
+ 293. http://www.columbia.edu/kermit/ckuins.html#x9.3
+ 294. http://www.columbia.edu/kermit/cable.html
+ 295. ftp://kermit.columbia.edu/kermit/c-kermit/ckutio.c
+ 296. ftp://kermit.columbia.edu/kermit/c-kermit/ckcdeb.h
+ 297. http://www.columbia.edu/kermit/ckuins.html#top
+ 298. http://www.columbia.edu/kermit/ckuins.html#contents
+ 299. http://www.columbia.edu/kermit/ckuins.html#x9
+ 300. http://www.columbia.edu/kermit/ckuins.html#x9.6
+ 301. http://www.columbia.edu/kermit/ckuins.html#x9.4
+ 302. ftp://kermit.columbia.edu/kermit/c-kermit/ckcdeb.h
+ 303. ftp://kermit.columbia.edu/kermit/c-kermit/ckuus3.c
+ 304. ftp://kermit.columbia.edu/kermit/c-kermit/ckutio.c
+ 305. http://www.columbia.edu/kermit/ckuins.html#top
+ 306. http://www.columbia.edu/kermit/ckuins.html#contents
+ 307. http://www.columbia.edu/kermit/ckuins.html#x9
+ 308. http://www.columbia.edu/kermit/ckuins.html#x9.7
+ 309. http://www.columbia.edu/kermit/ckuins.html#x9.5
+ 310. http://www.columbia.edu/kermit/ckuins.html#top
+ 311. http://www.columbia.edu/kermit/ckuins.html#contents
+ 312. http://www.columbia.edu/kermit/ckuins.html#x9
+ 313. http://www.columbia.edu/kermit/ckuins.html#x9.8
+ 314. http://www.columbia.edu/kermit/ckuins.html#x9.6
+ 315. http://www.columbia.edu/kermit/ckuins.html#top
+ 316. http://www.columbia.edu/kermit/ckuins.html#contents
+ 317. http://www.columbia.edu/kermit/ckuins.html#x9
+ 318. http://www.columbia.edu/kermit/ckuins.html#x9.9
+ 319. http://www.columbia.edu/kermit/ckuins.html#x9.7
+ 320. ftp://kermit.columbia.edu/kermit/c-kermit/ckutio.c
+ 321. ftp://kermit.columbia.edu/kermit/c-kermit/ckutio.c
+ 322. ftp://kermit.columbia.edu/kermit/c-kermit/ckcdeb.h
+ 323. ftp://kermit.columbia.edu/kermit/c-kermit/ckufio.c
+ 324. http://www.columbia.edu/kermit/ckuins.html#top
+ 325. http://www.columbia.edu/kermit/ckuins.html#contents
+ 326. http://www.columbia.edu/kermit/ckuins.html#x9
+ 327. http://www.columbia.edu/kermit/ckuins.html#x10
+ 328. http://www.columbia.edu/kermit/ckuins.html#x9.8
+ 329. http://www.columbia.edu/kermit/ckuins.html#top
+ 330. http://www.columbia.edu/kermit/ckuins.html#contents
331. http://www.columbia.edu/kermit/ckuins.html#x11
- 332. http://www.columbia.edu/kermit/ckuins.html#top
- 333. http://www.columbia.edu/kermit/ckuins.html#contents
- 334. http://www.columbia.edu/kermit/ckuins.html#x12
- 335. http://www.columbia.edu/kermit/ckuins.html#x10
- 336. ftp://kermit.columbia.edu/kermit/c-kermit/ckutio.c
- 337. ftp://kermit.columbia.edu/kermit/c-kermit/ckufio.c
- 338. http://www.columbia.edu/kermit/ckuins.html#top
- 339. http://www.columbia.edu/kermit/ckuins.html#contents
- 340. http://www.columbia.edu/kermit/ckuins.html#x13
- 341. http://www.columbia.edu/kermit/ckuins.html#x11
- 342. http://www.columbia.edu/kermit/ckuins.html#top
- 343. http://www.columbia.edu/kermit/ckuins.html#contents
- 344. http://www.columbia.edu/kermit/ckuins.html#x14
- 345. http://www.columbia.edu/kermit/ckuins.html#x12
- 346. ftp://kermit.columbia.edu/kermit/c-kermit/ckubwr.txt
- 347. ftp://kermit.columbia.edu/kermit/c-kermit/ckutio.c
- 348. http://www.columbia.edu/kermit/ckuins.html#top
- 349. http://www.columbia.edu/kermit/ckuins.html#contents
- 350. http://www.columbia.edu/kermit/ckuins.html#x15
- 351. http://www.columbia.edu/kermit/ckuins.html#x13
- 352. http://www.columbia.edu/kermit/ckuins.html#top
- 353. http://www.columbia.edu/kermit/ckuins.html#contents
- 354. http://www.columbia.edu/kermit/ckuins.html#x16
- 355. http://www.columbia.edu/kermit/ckuins.html#x14
- 356. http://www.columbia.edu/kermit/uiksd.html#x4.2
- 357. http://www.columbia.edu/kermit/uiksd.html
- 358. http://www.columbia.edu/kermit/ckermit2.html
- 359. http://www.columbia.edu/kermit/ckuins.html#top
- 360. http://www.columbia.edu/kermit/ckuins.html#contents
- 361. http://www.columbia.edu/kermit/ckuins.html#x17
- 362. http://www.columbia.edu/kermit/ckuins.html#x15
- 363. http://www.columbia.edu/kermit/security.html
- 364. http://www.columbia.edu/kermit/security80.html
- 365. http://www.columbia.edu/kermit/ckuins.html#top
- 366. http://www.columbia.edu/kermit/ckuins.html#contents
- 367. http://www.columbia.edu/kermit/ckuins.html#x16
- 368. http://www.columbia.edu/kermit/skermit.html
- 369. http://www.columbia.edu/kermit/ckuins.html#top
- 370. http://www.columbia.edu/kermit/ckuins.html#contents
- 371. http://www.columbia.edu/kermit/ckermit.html
- 372. http://www.columbia.edu/kermit/ck90updates.html
- 373. http://www.columbia.edu/kermit/index.html
+ 332. http://www.columbia.edu/kermit/ckuins.html#x9
+ 333. ftp://kermit.columbia.edu/kermit/c-kermit/ckutio.c
+ 334. http://www.columbia.edu/kermit/ckuins.html#x11
+ 335. http://www.columbia.edu/kermit/ckuins.html#top
+ 336. http://www.columbia.edu/kermit/ckuins.html#contents
+ 337. http://www.columbia.edu/kermit/ckuins.html#x12
+ 338. http://www.columbia.edu/kermit/ckuins.html#x10
+ 339. ftp://kermit.columbia.edu/kermit/c-kermit/ckutio.c
+ 340. ftp://kermit.columbia.edu/kermit/c-kermit/ckufio.c
+ 341. http://www.columbia.edu/kermit/ckuins.html#top
+ 342. http://www.columbia.edu/kermit/ckuins.html#contents
+ 343. http://www.columbia.edu/kermit/ckuins.html#x13
+ 344. http://www.columbia.edu/kermit/ckuins.html#x11
+ 345. http://www.columbia.edu/kermit/ckuins.html#top
+ 346. http://www.columbia.edu/kermit/ckuins.html#contents
+ 347. http://www.columbia.edu/kermit/ckuins.html#x14
+ 348. http://www.columbia.edu/kermit/ckuins.html#x12
+ 349. ftp://kermit.columbia.edu/kermit/c-kermit/ckubwr.txt
+ 350. ftp://kermit.columbia.edu/kermit/c-kermit/ckutio.c
+ 351. http://www.columbia.edu/kermit/ckuins.html#top
+ 352. http://www.columbia.edu/kermit/ckuins.html#contents
+ 353. http://www.columbia.edu/kermit/ckuins.html#x15
+ 354. http://www.columbia.edu/kermit/ckuins.html#x13
+ 355. http://www.columbia.edu/kermit/ckuins.html#top
+ 356. http://www.columbia.edu/kermit/ckuins.html#contents
+ 357. http://www.columbia.edu/kermit/ckuins.html#x16
+ 358. http://www.columbia.edu/kermit/ckuins.html#x14
+ 359. http://www.columbia.edu/kermit/uiksd.html#x4.2
+ 360. http://www.columbia.edu/kermit/uiksd.html
+ 361. http://www.columbia.edu/kermit/ckermit2.html
+ 362. http://www.columbia.edu/kermit/ckuins.html#top
+ 363. http://www.columbia.edu/kermit/ckuins.html#contents
+ 364. http://www.columbia.edu/kermit/ckuins.html#x17
+ 365. http://www.columbia.edu/kermit/ckuins.html#x15
+ 366. http://www.columbia.edu/kermit/security.html
+ 367. http://www.columbia.edu/kermit/security80.html
+ 368. http://www.columbia.edu/kermit/ckuins.html#top
+ 369. http://www.columbia.edu/kermit/ckuins.html#contents
+ 370. http://www.columbia.edu/kermit/ckuins.html#x16
+ 371. http://www.columbia.edu/kermit/skermit.html
+ 372. http://www.columbia.edu/kermit/ckuins.html#top
+ 373. http://www.columbia.edu/kermit/ckuins.html#contents
+ 374. http://www.columbia.edu/kermit/ckermit.html
+ 375. http://www.columbia.edu/kermit/ck90updates.html
+ 376. http://www.columbia.edu/kermit/index.html