source: trunk/third/kermit/ckccfg.txt @ 20081

Revision 20081, 79.2 KB checked in by zacheiss, 21 years ago (diff)
This commit was generated by cvs2svn to compensate for changes in r20080, which included commits to RCS files with non-trunk default branches.
Line 
1
2                        C-Kermit Configuration Options
3                                       
4     Frank da Cruz
5     [1]The Kermit Project
6     [2]Columbia University
7     
8   As of: C-Kermit 8.0.208, 14 March 2003
9   This page last updated: Sun Mar 9 18:53:03 2003 (New York USA Time)
10   
11     IF YOU ARE READING A PLAIN-TEXT version of this document, note that
12     this file is a plain-text dump of a Web page. You can visit the
13     original (and possibly more up-to-date) Web page here:
14     
15  [3]http://www.columbia.edu/kermit/ckccfg.html
16
17   [ [4]C-Kermit Home ] [ [5]Kermit Home ]
18    ________________________________________________________________________
19 
20  CONTENTS
21 
22  1. [6]FILE TRANSFER
23  2. [7]SERIAL COMMUNICATION SPEEDS
24  3. [8]FULLSCREEN FILE TRANSFER DISPLAY
25  4. [9]CHARACTER SETS
26  5. [10]APC EXECUTION
27  6. [11]PROGRAM SIZE
28  7. [12]MODEM DIALING
29  8. [13]NETWORK SUPPORT
30  9. [14]EXCEPTION HANDLING
31 10. [15]SECURITY FEATURES
32 11. [16]ENABLING SELECT()
33 12. [17]I/O REDIRECTION
34 13. [18]FLOATING-POINT NUMBERS, TIMERS, AND ARITHMETIC
35 14. [19]SPECIAL CONFIGURATIONS
36  I. [20]SUMMARY OF COMPILE-TIME OPTIONS
37    ________________________________________________________________________
38 
39  OVERVIEW
40 
41   This document describes configuration options for C-Kermit (5A and
42   later). The major topics covered include program size (and how to
43   reduce it), how to include or exclude particular features, notes on
44   serial-port, modem, and network support, and a list of C-Kermit's
45   compile-time options.
46   
47   For details about your particular operating system, also see the
48   system-specific installation instructions file, such as the
49   [21]C-Kermit Installation Instructions for Unix.
50   
51   [ [22]C-Kermit Home ] [ [23]Kermit Home ]
52    ________________________________________________________________________
53 
54  1. FILE TRANSFER
55 
56   [ [24]Top ] [ [25]Contents ] [ [26]Next ] [ [27]Previous ]
57   
58   Prior to version 7.0, C-Kermit was always built with the most
59   conservative Kermit file-transfer protocol defaults on every platform:
60   no control-character prefixing, 94-byte packets, and a window size of
61   1.
62   
63   Starting in version 7.0, fast settings are the default. To override
64   these at compile time, include:
65   
66  -DNOFAST
67
68   in the C compiler CFLAGS. Even with the fast defaults, C-Kermit
69   automatically drops down to whatever window and packet sizes requested
70   by the other Kermit, if these are smaller, when sending files (except
71   for control-character unprefixing, which is not negotiated, and which
72   is now set to CAUTIOUS rather than NONE at startup). C-Kermit's
73   settings prevail when it is receiving.
74   
75   [ [28]C-Kermit Home ] [ [29]Kermit Home ]
76    ________________________________________________________________________
77 
78  2. SERIAL COMMUNICATION SPEEDS
79 
80   [ [30]Top ] [ [31]Contents ] [ [32]Next ] [ [33]Previous ]
81   
82   As of 6 September 1997, a new simplified mechanism for obtaining the
83   list of legal serial interface speeds is in place:
84   
85     * If the symbol TTSPDLIST is defined, the system-dependent routine
86       ttspdlist() is called at program initialization to obtain the
87       list.
88     * This symbol should be defined only for C-Kermit implementations
89       that have implemented the ttspdlist() function, typically in the
90       ck?tio.c module. See [34]ckutio.c for an example.
91     * TTSPDLIST is automatically defined in [35]ckcdeb.h for UNIX. Add
92       the appropriate #ifdefs for other platforms when the corresponding
93       ttspdlist() functions are filled in.
94     * If TTSPDLIST is (or normally would be) defined, the old code
95       (described below) can still be selected by defining NOTTSPDLIST.
96       
97   The ttspdlist() function can obtain the speeds in any way that works.
98   For example, based simply on #ifdef Bnnnn..#endif (in UNIX). Although
99   it might be better to actually check each speed against the currently
100   selected hardware interface before allowing it in the array, there is
101   usually no passive and/or reliable and safe way to do this, and so
102   it's better to let some speeds into the array that might not work,
103   than it is to erroneously exclude others. Speeds that don't work are
104   caught when the SET SPEED command is actually given.
105   
106   Note that this scheme does not necessarily rule out split speed
107   operation, but effectively it does in C-Kermit as presently
108   constituted since there are no commands to set input and output speed
109   separately (except the special case "set speed 75/1200").
110   
111   Note that some platforms, notably AIX 4.2 and 4.3, implement high
112   serial speeds transparently to the application, e.g. by mapping 50 bps
113   to 57600 bps, and so on.
114   
115   That's the whole deal. When TTSPDLIST is not defined, the following
116   applies:
117   
118   Speeds are defined in two places: the SET SPEED keyword list in the
119   command parser (as of this writing, in the [36]ckuus3.c source file),
120   and in the system- dependent communications i/o module, ck?tio.c,
121   functions ttsspd() (set speed) and ttgspd() (get speed). The following
122   speeds are assumed to be available in all versions:
123   
124  0, 110, 300, 600, 1200, 2400, 4800, 9600
125
126   If one or more of these speeds is not supported by your system, you'll
127   need to change the source code (this has never happened so far). Other
128   speeds that are not common to all systems have Kermit-specific
129   symbols:
130   
131               Symbol       Symbol
132  Speed (bps)  to enable    to disable
133       50       BPS_50       NOB_50
134       75       BPS_75       NOB_75
135       75/1200  BPS_7512     NOB_7512
136      134.5     BPS_134      NOB_134
137      150       BPS_150      NOB_150
138      200       BPS_200      NOB_200
139     1800       BPS_1800     NOB_1800
140     3600       BPS_3600     NOB_3600
141     7200       BPS_7200     NOB_7200
142    14400       BPS_14K      NOB_14K
143    19200       BPS_19K      NOB_19K
144    28800       BPS_28K      NOB_28K
145    38400       BPS_38K      NOB_38K
146    57600       BPS_57K      NOB_57K
147    76800       BPS_76K      NOB_76K
148   115200       BPS_115K     NOB_155K
149   230400       BPS_230K     NOB_230K
150   460800       BPS_460K     NOB_460K
151   921600       BPS_921K     NOB_921K
152
153   The [37]ckcdeb.h header file contains default speed configurations for
154   the many systems that C-Kermit supports. You can override these
155   defaults by (a) editing ckcdeb.h, or (b) defining the appropriate
156   enabling and/or disabling symbols on the CC command line, for example:
157   
158  -DBPS_14400 -DNOB_115200
159
160   or the "make" command line, e.g.:
161   
162  make blah "KFLAGS=-DBPS_14400 -DNOB_115200"
163
164   Note: some speeds have no symbols defined for them, because they have
165   never been needed: 12.5bps, 45.5bps, 20000bps, etc. These can easily
166   be added if required (but they will work only if the OS supports
167   them).
168   
169   IMPORTANT: Adding one of these flags at compile time does not
170   necessarily mean that you will be able to use that speed. A particular
171   speed is usable only if your underlying operating system supports it.
172   In particular, it needs to be defined in the appropriate system header
173   file (e.g. in UNIX, cd to /usr/include and grep for B9600 in *.h and
174   sys/*.h to find the header file that contains the definitions for the
175   supported speeds), and supported by the serial device driver, and of
176   course by the physical device itself.
177   
178   ALSO IMPORTANT: The list of available speeds is independent of how
179   they are set. The many UNIXes, for example, offer a wide variety of
180   APIs that are BSD-based, SYSV-based, POSIX-based, and purely made up.
181   See the ttsspd(), ttgspd(), and ttspdlist() routines in [38]ckutio.c
182   for illustrations.
183   
184   The latest entries in this horserace are the tcgetspeed() and
185   ttsetspeed() routines found in UnixWare 7. Unlike other methods, they
186   accept the entire range of integers (longs really) as speed values,
187   rather than certain codes, and return an error if the number is not,
188   in fact, a legal speed for the device/driver in question. In this
189   case, there is no way to build a list of legal speeds at compile time,
190   since no Bnnnn symbols are defined (except for "depracated, legacy"
191   interfaces like ioctl()) and so the legal speed list must be
192   enumerated in the code -- see ttspdlist() in [39]ckutio.c.
193   
194   [ [40]C-Kermit Home ] [ [41]Kermit Home ]
195    ________________________________________________________________________
196 
197  3. FULLSCREEN FILE TRANSFER DISPLAY
198 
199   [ [42]Top ] [ [43]Contents ] [ [44]Next ] [ [45]Previous ]
200   
201   New to edit 180 is support for an MS-DOS-Kermit-like local-mode full
202   screen file transfer display, accomplished using the curses library,
203   or something equivalent (for example, the Screen Manager on DEC VMS).
204   To enable this feature, include the following in your CFLAGS:
205   
206  -DCK_CURSES
207
208   and then change your build procedure (if necessary) to include the
209   necessary libraries. For example, in Unix these are usually "curses"
210   or "ncurses" (and more recenlty, "ncursesw" and "slang"), perhaps also
211   "termcap", "termlib", or "tinfo":
212   
213  "LIBS= -lcurses -ltermcap"
214  "LIBS= -lcurses -ltermlib"
215  "LIBS= -lncurses"
216  "LIBS= -ltermlib"
217  "LIBS= -ltinfo"
218
219   "man curses" for further information, and search through the Unix
220   [46]makefile for "CK_CURSES" to see many examples, and also see the
221   relevant sections of the [47]Unix C-Kermit Installation Instructions,
222   particularly Sections [48]4 and [49]9.2.
223   
224   There might still be a complication. Some implementations of curses
225   reserve the right to alter the buffering on the output file without
226   restoring it afterwards, which can leave Kermit's command processing
227   in a mess when the prompt comes back after a fullscreen file transfer
228   display. The typical symptom is that characters you type at the prompt
229   after a local-mode file transfer (i.e. after seeing the curses
230   file-transfer display) do not echo until you press the Return (Enter)
231   key. If this happens to you, try adding
232   
233  -DCK_NEWTERM
234
235   to your makefile target (see comments in screenc() in [50]ckuusx.c for
236   an explanation).
237   
238   If that doesn't fix the problem, then use a bigger hammer and replace
239   -DCK_NEWTERM with:
240   
241  -DNONOSETBUF
242
243   which tells Kermit to force stdout to be unbuffered so CBREAK mode can
244   work.
245   
246   In SCO Xenix and SCO UNIX, there are two separate curses libraries,
247   one based on termcap and the other based on terminfo. The default
248   library, usually terminfo, is established when the development system
249   is installed. To manually select terminfo (at compile time):
250   
251  compile -DM_TERMINFO and link -ltinfo
252
253   and to manually select termcap:
254   
255  compile -DM_TERMCAP and link -ltcap -ltermlib
256
257   <curses.h> looks at M_TERMINFO and M_TERMCAP to decide which header
258   files to use. /usr/lib/libcurses.a is a link to either libtinfo.a or
259   libtcap.a. The C-Kermit compilation options must agree with the
260   version of the curses library that is actually installed.
261   
262   NOTE: If you are doing an ANSI-C compilation and you get compile time
263   warnings like the following:
264   
265  Warning: function not declared in ckuusx.c: wmove, printw, wclrtoeol,
266  wclear, wrefresh, endwin, etc...
267
268   it means that your <curses.h> file does not contain prototypes for
269   these functions. The warnings should be harmless.
270   
271   New to edit 190 is the ability to refresh a messed-up full-screen
272   display, e.g. after receiving a broadcast message. This depends on the
273   curses package including the wrefresh() and clearok() functions and
274   the curscr variable. If your version has these, or has code to
275   simulate them, then add:
276   
277  -DCK_WREFRESH
278
279   The curses and termcap libraries add considerable size to the program
280   image (e.g. about 20K on a SUN-4, 40K on a 386). On some small
281   systems, such as the AT&T 6300 PLUS, curses can push Kermit over the
282   edge... even though it compiles, loads, and runs correctly, its
283   increased size apparently makes it swap constantly, slowing it down to
284   a crawl, even when the curses display is not in use. Some new makefile
285   targets have been added to take care of this (e.g. sys3upcshcc), but
286   similar tricks might be necessary in other cases too.
287   
288   On the curses file-transfer display, just below the "thermometer", is
289   a running display of the transfer rate, as a flat quotient of file
290   characters per elapsed seconds so far. You can change this to an
291   average that gives greater weight to recent history (0.25 *
292   instantaneous cps + 0.75 * historical cps) by adding -DCPS_WEIGHTED to
293   your CFLAGS (sorry folks, this one is not worth a SET command). You
294   can choose a second type of weighted average in which the weighting
295   smooths out progressively as the transfer progresses by adding
296   -DCPS_VINCE to -DCPS_WEIGHTED.
297   
298   An alternative to curses is also available at compile time, but should
299   be selected if your version of Kermit is to be run in local mode only
300   in an ANSI terminal environment, for example on a desktop workstation
301   that has an ANSI console driver. To select this option in place of
302   curses, define the symbol MYCURSES:
303   
304  -DMYCURSES
305
306   instead of CK_CURSES. The MYCURSES option uses built-in ANSI (VT100)
307   escape sequences, and depends upon your terminal or console driver to
308   interpret them correctly.
309   
310   In some C-Kermit builds, we replace printf() via #define printf...
311   However, this can cause conflicts with the [n]curses header files.
312   Various hacks are required to get around this -- see [51]ckutio.c,
313   [52]ckufio.c, [53]ckuusx.c, [54]ckucmd.c, etc.
314   
315   [ [55]C-Kermit Home ] [ [56]Kermit Home ]
316    ________________________________________________________________________
317 
318  4. CHARACTER SETS
319 
320   [ [57]Top ] [ [58]Contents ] [ [59]Next ] [ [60]Previous ]
321   
322   Since version 5A, C-Kermit has included support for conversion of
323   character sets for Western European languages (i.e. languages that
324   originated in Western Europe, but are now also spoken in the Western
325   Hemisphere and other parts of the world), via ISO 8859-1 Latin
326   Alphabet 1, for Eastern European languages (ISO Latin-2), Hebrew (and
327   Yiddish), Greek, and Cyrillic-alphabet languages (ISO Latin/Cyrillic).
328   Many file (local) character sets are supported: ISO 646 7-bit national
329   sets, IBM code pages, Apple, DEC, DG, NeXT, etc.
330   
331   To build Kermit with no character-set translation at all, include
332   -DNOCSETS in the CFLAGS. To build with no Latin-2, add -DNOLATIN2. To
333   build with no Cyrillic, add -DNOCYRIL. To omit Hebrew, add -DNOHEBREW.
334   If -DNOCSETS is *not* included, you'll always get LATIN1. To build
335   with no KANJI include -DNOKANJI. There is presently no way to include
336   Latin-2, Cyrillic, Hebrew, or Kanji without also including Latin-1.
337   
338   [61]Unicode support was added in C-Kermit 7.0, and it adds a fair
339   amount of tables and code (and this is only a "Level 1" implementation
340   -- a higher level would also require building in the entire Unicode
341   database). On a PC with RH 5.2 Linux, building C-Kermit 7.0, we get
342   the following sizes:
343   
344  NOCSETS NOUNICODE NOKANJI   Before    After                 
345   [   ]    [   ]    [   ]    1329014   (Full)
346   [   ]    [   ]    [ X ]    1325686   (Unicode but no Kanji)
347   [   ]    [ X ]    [   ]    1158837   (All charsets except Unicode)
348   [ X ]    [ x ]    [ x ]    1090845   (NOCSETS implies the other two)
349
350   Note, by the way, that NOKANJI without NOUNICODE only removes the
351   non-Unicode Kanji sets (Shift-JIS, EUC-JP, JIS-7, etc). Kanji is still
352   representable in UCS-2 and UTF-8.
353   
354   [ [62]C-Kermit Home ] [ [63]Kermit Home ]
355    ________________________________________________________________________
356 
357  5. APC EXECUTION
358 
359   [ [64]Top ] [ [65]Contents ] [ [66]Next ] [ [67]Previous ]
360   
361   The Kermit CONNECT and INPUT commands are coded to execute Application
362   Program Command escape sequences from the host:
363   
364  <ESC>_<text><ESC>\
365
366   where <text> is a C-Kermit command, or a list of C-Kermit commands
367   separated by commas, up to about 1K in length.
368   
369   To date, this feature has been included in the OS/2, Windows, VMS,
370   OS-9, and Unix versions, for which the symbol:
371   
372  CK_APC
373
374   is defined automatically in [68]ckuusr.h. For OS/2, APC is enabled at
375   runtime by default, for UNIX it is disabled. It is controlled by the
376   SET TERMINAL APC command. Configuring APC capability into a version
377   that gets it by default (because CK_APC is defined in [69]ckuusr.h)
378   can be overridden by including:
379   
380  -DNOAPC
381
382   on the CC command line.
383   
384   C-Kermit's autodownload feature depends on the APC feature, so
385   deconfiguring APC also disables autodownload (it doesn't use APC
386   escape sequences, but uses the APC switching mechanism internally).
387   
388   [ [70]C-Kermit Home ] [ [71]Kermit Home ]
389    ________________________________________________________________________
390 
391  6. PROGRAM SIZE
392 
393   [ [72]Top ] [ [73]Contents ] [ [74]Next ] [ [75]Previous ]
394   
395   SECTION CONTENTS
396   
397  6.1. [76]Feature Selection
398  6.2. [77]Changing Buffer Sizes
399  6.3. [78]Other Size-Related Items
400  6.4. [79]Space/Time Tradeoffs
401
402   (Also see [80]Section 4)
403   
404   Each release of C-Kermit is larger than the last. On some computers
405   (usually old ones) the size of the program prevents it from being
406   successfully linked and loaded. On some others (also usually old
407   ones), it occupies so much memory that it is constantly swapping or
408   paging. In such cases, you can reduce C-Kermit's size in various ways,
409   outlined in this section. The following options can cut down on the
410   program's size at compile time by removing features or changing the
411   size of storage areas.
412   
413   If you are reading this section because all you want is a small, fast,
414   quick-to-load Kermit file-transfer application for the remote end of
415   your connection, and the remote end is Unix based, take a look at
416   G-Kermit:
417   
418  [81]http://www.columbia.edu/kermit/gkermit.html
419
420  6.1. Feature Selection
421 
422   Features can be added or removed by defining symbols on the CC (C
423   compiler) command line. "-D" is the normal CC directive to define a
424   symbol so, for example, "-DNODEBUG" defines the symbol NODEBUG. Some C
425   compilers might use different syntax, e.g. "-d NODEBUG" or
426   "/DEFINE=NODEBUG". For C compilers that do not accept command-line
427   definitions, you can put the corresponding #define statements in the
428   file ckcsym.h, for example:
429   
430  #define NODEBUG
431
432   The following table shows the savings achieved when building C-Kermit
433   8.0 (Beta.04) with selected feature-deselection switches on an
434   Intel-based PC with Red Hat Linux 7.0 and gcc 2.96. The sizes are for
435   non-security builds. The fully configured non-security build is
436   2127408 bytes.
437   
438     Option Size Savings Effect
439     NOICP  545330 74.4% No Interactive Command Parser (command-line
440     only)
441     NOLOCAL 1539994 27.6% No making connections.
442     NOXFER 1551108 27.1% No file transfer.
443     IKSDONLY 1566608 26.4% Internet Kermit Server only.
444     NOCSETS 1750097 17.7% No character-set conversion.
445     NOSPL 1800293 15.4% No Script Programming Language.
446     NONET 1808575 15.0% No making network connections.
447     NOUNICODE 1834426 13.8% No Unicode character-set conversion.
448     NOHELP 1837877 13.6% No built-in help text.
449     NODEBUG 1891669 11.1% No debug log.
450     NOFRILLS 1918966 9.8% No "frills".
451     NOFTP 1972496 7.3% No FTP client.
452     NODIAL 1984488 6.7% No automatic modem dialing.
453     NOPUSH 2070184 2.7% No shell access, running external programs,
454     etc.
455     NOIKSD 2074129 2.5% No Internet Kermit Server capability.
456     NOHTTP 2082610 2.1% No HTTP client.
457     NOFLOAT 2091332 1.7% No floating-point arithmetic.
458     NOCHANNELIO 2095978 1.5% No FOPEN/FREAD/FWRITE/FCLOSE, etc.
459     MINIDIAL 2098035 1.4% No built-in support for many kinds of modems.
460     NOSERVER 2098987 1.3% No server mode.
461     NOSEXP 2105898 1.0% No S-Expressions.
462     NOPTY 2117743 0.5% No pseudoterminal support.
463     NORLOGIN 2121089 0.3% No RLOGIN connections.
464     NOOLDMODEMS 2124038 0.2% No built-in support for old kinds of
465     modems.
466     NOSSH 2125696 0.1% No SSH command.
467     
468   And here are a few combinations
469   
470     Options Size Savings Effect
471     NODEBUG NOICP NOCSETS NOLOCAL 281641 86.7% No debug log, parser,
472     character sets, or making connections.
473     NOICP NOCSETS NOLOCAL 376468 82.3% No parser, character sets, or
474     making connections.
475     NOICP NOCSETS NONET 427510 79.9% No parser, character sets, or
476     network connections.
477     NOSPL NOCSETS 1423784 33.1% No script language, or character sets.
478     
479   -DNOFRILLS removes various command synonyms; the following top-level
480   commands: CLEAR, DELETE, DISABLE, ENABLE, GETOK, MAIL, RENAME, TYPE,
481   WHO; and the following REMOTE commands: KERMIT, LOGIN, LOGOUT, PRINT,
482   TYPE, WHO.
483   
484  6.2. Changing Buffer Sizes
485 
486   Most modern computers have so much memory that (a) there is no need to
487   scrimp and save, and (b) C-Kermit, even when fully configured, is
488   relatively small by today's standards.
489   
490   Two major factors affect Kermit's size: feature selection and buffer
491   sizes. Buffer sizes affect such things as the maximum length for a
492   Kermit packet, the maximum length for a command, for a macro, for the
493   name of a macro, etc. Big buffer sizes are used when the following
494   symbol is defined:
495   
496  BIGBUFOK
497
498   as it is by default for most modern platforms (Linux, AIX 4 and 5,
499   HP-UX 10 and 11, Solaris, etc) in [82]ckuusr.h. If your build does not
500   get big buffers automatically (SHOW FEATURES tells you), you can
501   include them by rebuilding with BIGBUFOK defined; e.g. in Unix:
502   
503  make xxxx KFLAGS=-DBIGBUFOK
504
505   where xxxx is the makefile target. On the other hand, if you want to
506   build without big buffers when they normally would be selected, use:
507   
508  make xxxx KFLAGS=-DNOBIGBUF
509
510   There are options to control Kermit's packet buffer allocations. The
511   following symbols are defined in [83]ckcker.h in such a way that you
512   can override them by redefining them in CFLAGS:
513   
514  -DMAXSP=xxxx - Maximum send-packet length.
515  -DMAXRP=xxxx - Maximum receive-packet length.
516  -DSBSIZ=xxxx - Total allocation for send-packet buffers.
517  -DRBSIZ=xxxx - Total allocation for receive-packet buffers.
518
519   The defaults depend on the platform.
520   
521   Using dynamic allocation (-DDYNAMIC) reduces storage requirements for
522   the executable program on disk, and allows more and bigger packets at
523   runtime. This has proven safe over the years, and now most builds
524   (e.g. all Unix, VMS, Windows, and OS/2 ones) use dynamic memory
525   allocation by default. If it causes trouble, however, then omit the
526   -DDYNAMIC option from CFLAGS, or add -DNODYNAMIC.
527   
528  6.3. Other Size-Related Items
529 
530   To make Kermit compile and load successfully, you might have to change
531   your build procedure to:
532   
533    a. Request a larger ("large" or "huge") compilation / code-generation
534       model. This is needed for 16-bit PC-based UNIX versions (most or
535       all of which fail to build C-Kermit 7.0 and later anyway). This is
536       typically done with a -M and/or -F switch (see your cc manual or
537       man page for details).
538    b. Some development systems support overlays. If the program is too
539       big to be built as is, check your loader manual ("man ld") to see
540       if an overlay feature is available. See the 2.10/2.11 BSD example
541       in the UNIX makefile. (Actually, as of version 7.0, C-Kermit is
542       too big to build, period, even with overlays, on 2.xx BSD).
543    c. Similarly, some small and/or segment-based architectures support
544       "code mapping", which is similar to overlays (PDP11-based VENIX
545       1.0, circa 1984, was an example). See the linker documentation on
546       the affected platform.
547       
548   It is also possible to reduce the size of the executable program file
549   in several other ways:
550   
551    a. Include the -O (optimize) compiler switch if it isn't already
552       included in your "make" entry (and if it works!). If your compiler
553       supports higher levels of optimization (e.g. -O2 or higher number,
554       -Onolimit (HP-UX), etc), try them; the greater the level of
555       optimization, the longer the compilation and more likely the
556       compiler will run out of memory. The the latter eventuality, some
557       compilers also provide command-line options to allocate more
558       memory for the optimizer, like "-Olimit number" in Ultrix.
559    b. If your platofrm supports shared libraries, change the make entry
560       to take advantage of this feature. The way to do this is, of
561       course, platform dependent; see the NeXT makefile target for an
562       example. some platforms (like Solaris) do it automatically and
563       give you no choice. But watch out: executables linked with shared
564       libraries are less portable than statically linked executables.
565    c. Strip the program image after building ("man strip" for further
566       info), or add -s to the LNKFLAGS (UNIX only). This strips the
567       program of its symbol table and relocation information.
568    d. Move character strings into a separate file. See the 2.11 BSD
569       target for an example.
570       
571  6.4. Space/Time Tradeoffs
572 
573   There are more than 6000 debug() statements in the program. If you
574   want to save both space (program size) and time (program execution
575   time), include -DNODEBUG in the compilation. If you want to include
576   debugging for tracking down problems, omit -DNODEBUG from the make
577   entry. But when you include debugging, you have two choices for how
578   it's done. One definition defines debug() to be a function call; this
579   is cheap in space but expensive in execution. The other defines debug
580   as "if (deblog)" and then the function call, to omit the function call
581   overhead when the debug log is not active. But this adds a lot of
582   space to the program. Both methods work, take your choice; IFDEBUG is
583   preferred if memory is not a constraint but the computer is likely to
584   be slow. The first method is the default, i.e. if nothing is done to
585   the CFLAGS or in [84]ckcdeb.h (but in some cases, e.g. VMS, it is). To
586   select the second method, include -DIFDEBUG in the compilation (and
587   don't include -DNODEBUG).
588   
589   [ [85]C-Kermit Home ] [ [86]Kermit Home ]
590    ________________________________________________________________________
591 
592  7. MODEM DIALING
593 
594   [ [87]Top ] [ [88]Contents ] [ [89]Next ] [ [90]Previous ]
595   
596   -DNODIAL removes automatic modem dialing completely, including the
597   entire [91]ckudia.c module, plus all commands that refer to dialing in
598   the various ckuus*.c modules.
599   
600   -DMINIDIAL leaves the DIAL and related commands (SET/SHOW MODEM,
601   SET/SHOW DIAL) intact, but removes support for all types of modems
602   except CCITT, Hayes, Unknown, User-defined, Generic-high-speed, and
603   None (= Direct). The MINIDIAL option cuts the size of the dial module
604   approximately in half. Use this option if you have only Hayes or CCITT
605   modems and don't want to carry the baggage for the other types.
606   
607   A compromise between full dialer support and MINIDIAL is obtained by
608   removing support for "old" modems -- all the strange non-Hayes
609   compatible 1200 and 2400 bps modems that C-Kermit has been carrying
610   around since 1985 or so. To remove support for these modems, add
611   -DNOOLDMODEMS to CFLAGS at compilation time.
612   
613   Finally, if you keep support for old modems, you will notice that
614   their names appear on the "set modem ?" menu. That's because their
615   names are, by default, "visible". But the list is confusing to the
616   younger generation, who have only heard of modems from the
617   V.32bis-and-later era. If you want to be able to use old modems, but
618   don't want their names cluttering up menus, add this to CFLAGS:
619   
620  -DM_OLD=1
621
622   [ [92]C-Kermit Home ] [ [93]Kermit Home ]
623    ________________________________________________________________________
624 
625  8. NETWORK SUPPORT
626 
627   [ [94]Top ] [ [95]Contents ] [ [96]Next ] [ [97]Previous ]
628   
629   SECTION CONTENTS
630   
631  8.1. [98]TCP/IP
632  8.2. [99]X.25
633  8.3. [100]Other Networks
634
635   C-Kermit supports not only serial-port and modem connections, but also
636   TCP/IP and X.25 network connections. Some versions support other
637   network types too like DECnet, LAT, NETBIOS, etc. If you define the
638   following symbol:
639   
640  NONET
641
642   then all network support is compiled away.
643   
644  8.1. TCP/IP
645 
646   SUBSECTION CONTENTS
647   
648  8.1.1. [101]Firewalls
649  8.1.2. [102]Compilation and Linking Problems
650  8.1.3. [103]Enabling Host Address Lists
651  8.1.4. [104]Enabling Telnet NAWS
652  8.1.5. [105]Enabling Incoming TCP/IP Connections
653  8.1.6. [106]Disabling SET TCP Options
654
655   C-Kermit's TCP/IP features require the Berkeley sockets library or
656   equivalent, generally available on any Unix system, as well as in
657   Windows 9x/NT, OS/2, VMS, AOS/VS, VOS, etc. The TCP/IP support
658   includes built-in TELNET, FTP, and HTTP protocol. To select TCP/IP
659   support, include -DTCPSOCKET in your makefile target's CFLAGS, or (in
660   VMS) the appropriate variant (e.g. -DWOLLONGONG, -DMULTINET,
661   -DEXCELAN, -DWINTCP, etc).
662   
663   The VMS and/or early Unix third-party TCP/IP products are often
664   incompatible with each other, and sometimes with different versions of
665   themselves. For example, Wollongong reportedly put header files in
666   different directories for different UNIX versions:
667   
668     * in.h can be in either /usr/include/sys or /user/include/netinet.
669     * telnet.h can be in either /usr/include/arpa or
670       /user/include/netinet.
671     * inet.h can be in either /usr/include/arpa or /user/include/sys.
672       
673   In cases like this, use the -I cc command-line option when possible;
674   otherwise it's better to make links in the file system than it is to
675   hack up the C-Kermit source code. Suppose, for example, Kermit is
676   looking for telnet.h in /usr/include/arpa, but on your computer it is
677   in /usr/include/netinet. Do this (as root, or get the system
678   administrator to do it):
679   
680  cd /usr/include/arpa
681  ln /usr/include/netinet/telnet.h telnet.h
682
683   ("man ln" for details about links.)
684   
685   The network support for TCP/IP and X.25 is in the source files
686   [107]ckcnet.h, [108]ckctel.c, [109]ckctel.c, [110]ckctel.h,
687   [111]ckcftp.c, with miscellaneous SHOW commands, etc, in the various
688   ckuus*.c modules, plus code in the ck*con.c or ckucns.c (CONNECT
689   command) and several other modules to detect TELNET negotiations, etc.
690   
691   Within the TCPSOCKET code, some socket-level controls are included if
692   TCPSOCKET is defined in the C-Kermit CFLAGS and SOL_SOCKET is defined
693   in in the system's TCP-related header files, such as <sys/socket.h>.
694   These are:
695   
696  SET TCP KEEPALIVE
697  SET TCP LINGER
698  SET TCP RECVBUF
699  SET TCP SENDBUF
700
701   In addition, if TCP_NODELAY is defined, the following command is also
702   enabled:
703   
704  SET TCP NODELAY (Nagle algorithm)
705
706   See the [112]C-Kermit user documentation for descriptions of these
707   commands.
708   
709  8.1.1. Firewalls
710 
711   There exist various types of firewalls, set up to separate users of an
712   internal TCP/IP network ("Intranet") from the great wide Internet, but
713   then to let selected users or services get through after all.
714   
715   One firewall method is called SOCKS, in which a proxy server allows
716   users inside a firewall to access the outside world, based on a
717   permission list generally stored in a file. SOCKS is enabled in one of
718   two ways. First, the standard sockets library is modified to handle
719   the firewall, and then all the client applications are relinked (if
720   necessary, i.e. if the libraries are not dynamically loaded) with the
721   modified sockets library. The APIs are all the same, so the
722   applications do not need to be recoded or recompiled.
723   
724   In the other method, the applications must be modified to call
725   replacement routines, such as Raccept() instead of accept(), Rbind()
726   instead of bind(), etc, and then linked with a separate SOCKS library.
727   This second method is accomplished (for SOCKS4) in C-Kermit by
728   including -DCK_SOCKS in your CFLAGS, and also adding:
729   
730  -lsocks
731
732   to LIBS, or replacing -lsockets with -lsocks (depending on whether the
733   socks library also includes all the sockets entry points).
734   
735   For SOCKS5, use -DCK_SOCKS5.
736   
737   Explicit firewall support can, in general, not be a standard feature
738   or a feature that is selected at runtime, because the SOCKS library
739   tends to be different at each site -- local modifications abound.
740   
741   The ideal situation occurs when firewalls are supported by the first
742   method, using dynamically linked sockets-replacement libraries; in
743   this case, all your TCP/IP client applications negotiate the firewall
744   transparently.
745   
746  8.1.2. Compilation and Linking Problems
747 
748   If you get a compilation error in [113]ckcnet.c, with a complaint like
749   "incompatible types in assignment", it probably has something to do
750   with the data type your system uses for the inet_addr() function,
751   which is declared (usually) in <arpa/inet.h>. Kermit uses "unsigned
752   long" unless the symbol INADDRX is defined, in which case "struct
753   inaddr" is used instead. Try adding -DINADDRX to CFLAGS in your make
754   entry, and if that fixes the problem, please send a report to
755   kermit@columbia.edu.
756   
757   Compilation errors might also have to do with the data type used for
758   getsockopt() and setsockopt() option-length field. This is normally an
759   int, but sometimes it's a short, a long, or an unsigned any of those,
760   or a size_t. To fix the compilation problem, add -DSOCKOPT_T=xxx to
761   the CFLAGS in your makefile target, where xxx is the appropriate type
762   (use "man getsockopt" or grep through your system/network header files
763   to find the needed type).
764   
765  8.1.3. Enabling Host Address Lists
766 
767   When you give Kermit an IP host name, it calls the socket routine
768   gethostbyname() to resolve it. gethostbyname() returns a hostent
769   struct, which might or might not not include a list of addresses; if
770   it does, then if the first one fails, Kermit can try the second one,
771   and so on. However, this will only work if the symbol "h_addr" is a
772   macro defined as "h_addr_list[0]", usually in netdb.h. If it is, then
773   you can activate this feature by defining the following symbol in
774   CFLAGS:
775   
776  HADDRLIST
777
778  8.1.4. Enabling Telnet NAWS
779 
780   The Telnet Negotiation About Window Size (NAWS) option requires the
781   ability to find out the terminal screen's dimensions. E.g. in Unix, we
782   need something like ioctl(0, TIOCGWINSZ, ...). If your version of
783   Kermit was built with NAWS capability, SHOW VERSIONS includes CK_NAWS
784   among the compiler options. If it doesn't, you can add it by defining
785   CK_NAWS at compile time. Then, if the compiler or linker complain
786   about undefined or missing symbols, or there is no complaint but SHOW
787   TERMINAL fails to show reasonable "Rows =, Columns =" values, then
788   take a look at (or write) the appropriate ttgwsiz() routine. On the
789   other hand, if CK_NAWS is defined by default for your system (in
790   [114]ckcnet.h), but causes trouble, you can override this definition
791   by including the -DNONAWS switch on your CC command line, thus
792   disabling the NAWS feature.
793   
794   This appears to be needed at least on the AT&T 3B2, where in
795   [115]ckutio.c, the routine ttgwsiz() finds that the TIOCGWINSZ symbol
796   is defined but lacks definitions for the corresponding winsize struct
797   and its members ws_col and ws_row.
798   
799   The UNIX version of C-Kermit also traps SIGWINCH, so it can send a
800   NAWS to the Telnet server any time the local console terminal window
801   size changes, e.g. when you stretch it with a mouse. The
802   SIGWINCH-trapping code is enabled if SIGWINCH is defined (i.e. in
803   signal.h). If this code should cause problems, you can disable it
804   without disabling the NAWS feature altogether, by defining NOSIGWINCH
805   at compile time.
806   
807  8.1.5. Enabling Incoming TCP/IP Connections
808 
809   This feature lets you "set host * port" and wait for an incoming
810   connection on the given port. This feature is enabled automatically at
811   compile if TCPSOCKET is defined and SELECT is also defined. But watch
812   out, simply defining SELECT on the cc command line does not guarantee
813   successful compilation or linking (see [116]Section 11).
814   
815   If you want to disable incoming TCP/IP connections, then build
816   C-Kermit with:
817   
818  -DNOLISTEN
819
820  8.1.6. Disabling SET TCP Options
821 
822   The main reason for this is because of header file / prototype
823   conflicts at compile time regardting get- / setsockopt(). If you can't
824   fix them (without breaking other builds), add the following in CFLAGS:
825   
826  -DNOTCPOPTS
827
828  8.2. X.25
829 
830   X.25 support requires (a) a Sun, (b) the SunLink product (libraries
831   and header files), and (c) an X.25 connection into your Sun. Similarly
832   (in C-Kermit 7.0 or later) Stratus VOS and IBM AIX.
833   
834   In UNIX, special makefile targets sunos4x25 and sunos41x25 (for SUNOS
835   4.0 and 4.1, respectively), or aix41x25, are provided to build in this
836   feature, but they only work if conditions (a)-(c) are met. To request
837   this feature, include -DSUNX25 (or -DIBMX25) in CFLAGS.
838   
839   SUNX25 (or -DIBMX25) and TCPSOCKET can be freely mixed and matched,
840   and selected by the user at runtime with the SET NETWORK TYPE command
841   or SET HOST switches.
842   
843  8.3. Other Networks
844 
845   Support for other networking methods -- NETBIOS, LAT, Named Pipes, etc
846   -- is included in ck*net.h and ck*net.c for implementations (such as
847   Windows or OS/2) where these methods are supported.
848   
849   Provision is made in the organization of the modules, header files,
850   commands, etc, for addition of new network types such as DECnet, X.25
851   for other systems (HP-UX, VMS, etc), and so on. Send email to
852   [117]kermit@columbia.edu if you are willing and able to work on such a
853   project.
854   
855   [ [118]C-Kermit Home ] [ [119]Kermit Home ]
856    ________________________________________________________________________
857 
858  9. EXCEPTION HANDLING
859 
860   [ [120]Top ] [ [121]Contents ] [ [122]Next ] [ [123]Previous ]
861   
862   The C language setjmp/longjmp mechanism is used for handling
863   exceptions. The jump buffer is of type jmp_buf, which almost
864   everywhere is typedef'd as an array, in which case you should have no
865   trouble compiling the exception-handling code. However, if you are
866   building C-Kermit in/for an environment where jmp_buf is something
867   other than an array (e.g. a struct), then you'll have to define the
868   following symbol:
869   
870  JBNOTARRAY
871
872   [ [124]C-Kermit Home ] [ [125]Kermit Home ]
873    ________________________________________________________________________
874 
875  10. SECURITY FEATURES
876 
877   [ [126]Top ] [ [127]Contents ] [ [128]Next ] [ [129]Previous ]
878   
879   Security, in the sense of secure authentication and strong encryption,
880   can be built into versionf of C-Kermit for which the appropriate
881   libraries and header files are available (Kerberos IV, Kerberos V,
882   OpenSSL, SRP), as explained in great detail in the Kermit Security
883   Reference
884   . The following symbols govern C-Kermit's security features at build
885   time:
886   
887   NO_AUTHENTICATION
888          Means do not configure any TELNET AUTHENTICATION support. It
889          implies NO_ENCRYPTION and undefines any of the auth and encrypt
890          types. It does not undefine CK_SSL even though builds with
891          CK_SSL cannot succeed without CK_AUTHENTICATION. (This will be
892          supported in a future release. It will be needed to allow
893          C-Kermit to be built only as an FTP client.)
894         
895   NO_KERBEROS
896          Means do not compile in any KERBEROS support when
897          CK_AUTHENTICATION has been defined.
898         
899   NO_SRP
900          Do not compile in any SRP support when CK_AUTHENTICATION has
901          been defined.
902         
903   NO_SSL
904          Do not compile in any SSL/TLS support
905         
906   NO_ENCRYPTION
907          Do not compile in any Telnet encryption support. It does not
908          affect the use of SSL/TLS
909         
910   NOSSH
911          Do not compile in any SSH support whether internal or external
912         
913   CK_AUTHENTICATION
914          Telnet AUTHENTICATION support. (Also, required if SSL/TLS
915          support is desired.) On most platforms this does not autodefine
916          any authentication mechanisms such as Kerberos V, Kerberos IV,
917          SRP, ... Those need to be defined separately.
918         
919   CK_KERBEROS
920          Defined automatically when KRB4, KRB5, or KRB524 are defined.
921          Implies that some version of Kerberos is in use.
922         
923   KRB4
924          Should be defined when Kerberos IV support is desired.
925         
926   KRB5
927          Should be defined when Kerberos V support is desired.
928         
929   KRB524
930          Should be defined if both Kerberos V and Kerberos IV are used
931          and the Kerberos IV support is provided by the MIT Kerberos IV
932          compatibility library in the current Kerberos 5 distribution.
933         
934   KRB5_U2U
935          Should be defined if KRB5 is defined and Kerberos 5 User to
936          User mode is desired.
937         
938   HEIMDAL
939          Should be defined if Kerberos V support is provided by HEIMDAL.
940          Support for this option is not complete in C-Kermit 8.0. Anyone
941          interested in working on this should contact kermit-support.
942         
943   CK_SRP
944          Should be defined if SRP support is desired.
945         
946   CK_ENCRYPTION
947          Should be defined if TELNET ENCRYPTION option support is
948          desired. This option does not define any particular encryption
949          types. That should be done by defining CK_DES or CK_CAST.
950         
951   CK_DES
952          Should be defined if either DES or 3DES Telnet Encryption
953          option support is desired.
954         
955   LIBDES
956          If CK_DES is defined and DES support is being provided by
957          either Eric Young's libdes.a or OpenSSL 0.9.6x or earlier, this
958          option must be defined. If it is not defined, it will be
959          assumed that DES support is provided by the MIT Kerberos IV
960          libraries.
961         
962   CK_CAST
963          Should be defined if CAST Telnet Encryption option support is
964          desired
965         
966   CK_SSL
967          Should be defined if SSL/TLS support (OpenSSL) is desired.
968         
969   SSL_KRB5
970          If KRB5 is defined, and OpenSSL is built to support the
971          Kerberos 5 ciphers, then you should define SSL_KRB5
972         
973   NOSSLKRB5
974          If you are using OpenSSL 0.9.7 or higher and do not wish to
975          build with support for Kerberos 5 TLS ciphers, this option must
976          be defined.
977         
978   ZLIB
979          If you are using OpenSSL 0.9.6 or higher and it has been
980          compiled with support for ZLIB compression, this option should
981          be defined to enable Kermit to properly enable the use of
982          compression.
983         
984   SSHCMD
985          Defined for C-Kermit to enable the use of external SSH clients
986          from the Kermit command language
987         
988   SSHBUILTIN
989          Defined for Kermit implementations that have integrated SSH
990          support. Currently only Windows.
991         
992   ANYSSH
993          Defined if either SSHCMD or SSHBUILTIN are defined.
994         
995   CK_SNDLOC
996          Telnet Send Location support.
997         
998   NOSNDLOC
999          Do not include Telnet Send Location support.
1000         
1001   CK_XDISPLOC
1002          Telnet X-Display Location support. Determines if the X-Display
1003          location information is sent to the Telnet server either via
1004          Telnet XDISPLOC or NEW-ENV options.
1005         
1006   NOXDISPLOC
1007          Do not include Telnet X-Display Location support.
1008         
1009   CK_FORWARD_X
1010          Telnet Forward X Windows Session Data option. Used to protect
1011          the privacy and integrity of X Windows Sessions when secure
1012          telnet sessions are in use.
1013         
1014   NOFORWARDX
1015          Do not include Telnet Forward X Windows Session Data option.
1016         
1017   Besides the strong forms of security listed above, C-Kermit also
1018   embodies various internal security features, including:
1019   
1020   NOPUSH
1021          Compiling with the NOPUSH symbol defined removes all the "shell
1022          escape" features from the program, including the PUSH, RUN, and
1023          SPAWN commands, the "!" and "@" command prefixes, OPEN !READ,
1024          OPEN !WRITE, job control (including the SUSPEND command), the
1025          REDIRECT command, shell/DCL escape from CONNECT mode, as well
1026          as the server's execution of REMOTE HOST commands (and, of
1027          course, the ENABLE HOST command). Add NODISPO to also prevent
1028          acceptance of incoming MAIL or REMOTE PRINT files. For UNIX,
1029          also be sure to read [130]Section 11 of the [131]Unix C-Kermit
1030          Installation Instructions. about set[ug]id configuration.
1031          Additional restrictions can be enforced when in server mode;
1032          read about the DISABLE command in the user manual.
1033         
1034   NOCCTRAP
1035          Compiling with NOCCTRAP prevents the trapping of SIGINT by
1036          Kermit. Thus if the user generates a SIGINT signal (e.g. by
1037          typing the system's interrupt character), Kermit will exit
1038          immediately, rather than returning to its prompt.
1039         
1040   NOPUSH and NOCCTRAP together allow Kermit to be run from restricted
1041   shells, preventing access to system functions.
1042   
1043   [ [132]C-Kermit Home ] [ [133]Kermit Home ]
1044    ________________________________________________________________________
1045 
1046  11. ENABLING SELECT()
1047 
1048   [ [134]Top ] [ [135]Contents ] [ [136]Next ] [ [137]Previous ]
1049   
1050   Kermit works best if it can do nonblocking reads, nondestructive input
1051   buffer checking, and millisecond sleeps. All of these functions can be
1052   accomplished by the select() function, which, unfortunately, is not
1053   universally available. Furthermore, select() is required if incoming
1054   TCP/IP connections are to be supported.
1055   
1056   select() was introduced with Berkeley UNIX, rejected by AT&T for
1057   System V, but is gradually creeping in to all UNIX versions (and other
1058   operating systems too) by virtue of its presence in the sockets
1059   library, which is needed for TCP/IP. AT&T SVID for System V R4
1060   includes select(), but that does not mean that all SVR4
1061   implementations have it.
1062   
1063   Furthermore, even when select() is available, it might work only on
1064   socket file descriptors, but not on others like serial ports, pipes,
1065   etc. For example, in AOS/VS and BeOS, it works only with file
1066   descriptors that were created by socket() and opened by connect() or
1067   accept().
1068   
1069   Other alternatives include poll() and rdchk(). Only one of these three
1070   functions should be included. The following symbols govern this:
1071   
1072     SELECT Use select() (BSD, or systems with sockets libraries)
1073     CK_POLL Use poll() (System V)
1074     RDCHK Use rdchk() (SCO XENIX and UNIX)
1075     
1076   If your system supports the select() function, but your version of
1077   C-Kermit does not, try adding:
1078   
1079  -DSELECT
1080
1081   to the CFLAGS, and removing -DRDCHK or -DCK_POLL if it is there. If
1082   you get compilation errors, some adjustments to ck*tio.c and/or
1083   ck*net.c might be needed; search for SELECT (uppercase) in these files
1084   (note that there are several variations on the calling conventions for
1085   select()).
1086   
1087   Various macros and data types need to be defined in order to use
1088   select(). Usually these are picked up from <types.h> or <sys/types.h>.
1089   But on some systems, they are in <sys/select.h>. In that case, add the
1090   following:
1091   
1092  -DSELECT_H
1093
1094   to the CFLAGS to tell C-Kermit to #include <sys/select.h>. A good
1095   indication that you need to do this would be if you get compile-time
1096   complaints about "fd_set" or "FD_SET" not being declared or defined.
1097   
1098   In UNIX, the use of select() vs fork() in the CONNECT command is
1099   independent of the above considerations, and is governed by choosing a
1100   particular makefile target.
1101   
1102   As of C-Kermit 7.0, select() is also the preferred control mechanism
1103   for the CONNECT command. Unfortunately, the structures used by the
1104   original UNIX CONNECT command, based on fork(), and those used by
1105   select(), are so different, it was not practical to implement them
1106   both in one module. So the select()-based CONNECT command module for
1107   UNIX is [138]ckucns.c, and the fork-based one remains [139]ckucon.c.
1108   To choose the fork-based one, which is more portable (but slower and
1109   more fragile), use "wermit" as the make target. To choose the
1110   select-based one, use "xermit". Only do this if you can verify that
1111   the CONNECT command works on serial connections and PIPE connections
1112   as well as TCP connections.
1113   
1114     The select()-based Unix CONNECT module, ckucns.c, must be used if
1115     encryption is to be done, since the fork() version (ckucon.c) loses
1116     its ability to share vital state information between the two forks.
1117     Also note that the select() version is superior in many other ways
1118     too. For example, it recovers better from exterior killing, forced
1119     disconnections, etc, plus it goes faster.
1120     
1121   SHOW VERSIONS tells whether the CONNECT module uses fork() or
1122   select().
1123   
1124   C-Kermit 8.0 adds learned script capability, which depends on
1125   select(). All the "wermit" based targets (as opposed to "xermit") had
1126   NOLEARN added to them. Whenever changing a target over from wermit to
1127   xermit, also remember to remove NOLEARN.
1128   
1129   [ [140]C-Kermit Home ] [ [141]Kermit Home ]
1130    ________________________________________________________________________
1131 
1132  12. I/O REDIRECTION
1133 
1134   [ [142]Top ] [ [143]Contents ] [ [144]Next ] [ [145]Previous ]
1135   
1136   The REDIRECT command allows a local program to be run with its i/o
1137   redirected over the communications connection. Your version of
1138   C-Kermit has a REDIRECT command if it was built with the following
1139   CFLAG:
1140   
1141  -DCK_REDIR
1142
1143   This, in turn, is possible only if the underlying API is there. In the
1144   case of UNIX this is just the wait() system call, so all UNIX versions
1145   get this feature as of 6.0.192 (earlier versions needed a <sys/wait.h>
1146   header file defining the symbols WIFEXITED and WEXITSTATUS).
1147   
1148   As of version 7.0, file transfer can be done using pipes and filters.
1149   To enable this feature, #define PIPESEND (and fill in the code). To
1150   disable on systems where it is normally enabled, define NOPIPESEND.
1151   This feature is, of course, also disabled by building with NOPUSH (or
1152   giving the "nopush" command at runtime).
1153   
1154   C-Kermit 7.0 also adds the PIPE and SET HOST /COMMAND commands, which
1155   provide another form of redirection. This feature is selected with
1156   -DNETCMD. CK_RDIR must also be defined, since the same mechanisms are
1157   used internally.
1158   
1159   [ [146]C-Kermit Home ] [ [147]Kermit Home ]
1160    ________________________________________________________________________
1161 
1162  13. FLOATING-POINT NUMBERS, TIMERS, AND ARITHMETIC
1163 
1164   [ [148]Top ] [ [149]Contents ] [ [150]Next ] [ [151]Previous ]
1165   
1166   Floating-point support was added in C-Kermit 7.0.
1167   
1168   Floating-point numbers are enabled internally, at least for use in
1169   high-precision file-transfer timers and statistics, unless the
1170   following symbol is defined at compile time:
1171   
1172  -DNOFLOAT
1173
1174   This might be necessary on old PCs that do not have built-in
1175   floating-point hardware.
1176   
1177   When NOFLOAT is not defined, the following symbol tells which
1178   floating-point type to use:
1179   
1180  -DCKFLOAT=xxxx
1181
1182   The value is either "double" (normal for 32- and 16-bit architectures)
1183   or "float" (normal for 64-bit architectures).
1184   
1185   C-Kermit can be configured to use high-precision file-transfer timers
1186   for more accurate statistics. This feature is enabled with:
1187   
1188  -DGFTIMER
1189
1190   and disabled with:
1191   
1192  -DNOGFTIMER
1193
1194   If you try to build with -DGFTIMER but you get compilation errors,
1195   either fix them (and send email to kermit@columbia.edu telling what
1196   you did), or else give up and use -DNOGFTIMER (or -DNOFLOAT) instead.
1197   Hint: depending on your machine architecture, you might have better
1198   luck using double than float as the data type for floating-point
1199   numbers, or vice versa. Look in [152]ckcdeb.h for the CKFLOAT
1200   definition.
1201   
1202   Floating-point arithmetic is also supported in the script programming
1203   language. First via the \fpp...() functions, such as \fppadd(), which
1204   adds two floating-point numbers, second in S-Expressions. Addition,
1205   subtraction, multiplication, and division are always available. But
1206   other functions such as logs, raising to powers, sines and cosines,
1207   etc, require the C Math library. To include user-level floating-point
1208   math you must put:
1209   
1210  -DFNFLOAT
1211
1212   and in Unix you must link with the Math library:
1213   
1214  LIBS=".... -lm"
1215
1216   In K95 and VMS, FNFLOAT is defined automatically if CKFLOAT is
1217   defined. In Unix, however, FNFLOAT must be added to each makefile
1218   target individually, because of the special linking instructions that
1219   must also be added to each target.
1220   
1221   Note: S-Expressions require FNFLOAT.
1222   
1223   [ [153]C-Kermit Home ] [ [154]Kermit Home ]
1224    ________________________________________________________________________
1225 
1226  14. SPECIAL CONFIGURATIONS
1227 
1228   [ [155]Top ] [ [156]Contents ] [ [157]Previous ]
1229   
1230   As of C-Kermit 7.0, if you build C-Kermit normally, but with -DNOICP
1231   (No Interactive Command Parser), you get a program capable of making
1232   serial connections (but not dialing) and network connections (if
1233   TCPSOCKET or other network option included), and can also transfer
1234   files using Kermit protocol, but only via autodownload/upload.
1235   Furthermore, if you call the executable "telnet", it will act like
1236   Telnet -- using the command-line options. However, in this case there
1237   is nothing to escape back to, so if you type Ctrl-\c, it just prints a
1238   message to this effect.
1239   
1240   You can also build C-Kermit with -DNOXFER, meaning omit all the
1241   file-transfer features. This leaves you with a scriptable
1242   communications program that is considerably smaller than the full
1243   C-Kermit.
1244   
1245   [ [158]C-Kermit Home ] [ [159]Kermit Home ]
1246    ________________________________________________________________________
1247 
1248  APPENDIX I: SUMMARY OF COMPILE-TIME OPTIONS
1249 
1250   [ [160]Top ] [ [161]Contents ]
1251   
1252   These are the symbols that can be specified on the cc command line,
1253   listed alphabetically. Others are used internally, including those
1254   taken from header files, those defined by the compiler itself, and
1255   those inferred from the ones given below. Kermit's SHOW VERSIONS
1256   command attempts to display most of these. See [162]ckcdeb.h and
1257   [163]ckcnet.h for inference rules. For example SVR3 implies ATTSV,
1258   MULTINET implies TCPSOCKET, and so on.
1259   
1260   Here is the complete list of the Kermit-specific compile-time
1261   switches:
1262   
1263   ACUCNTRL Select BSD 4.3-style acucntrl() bidirectional tty control.
1264   aegis Build for Apollo Aegis (predefined on Apollo systems).
1265   AIX370 Build for IBM AIX/370 for IBM mainframes.
1266   AIXESA Build for IBM AIX/ESA for IBM mainframes.
1267   AIXPS2 Build for IBM AIX 3.0 for PS/2 series (never formally
1268   released).
1269   AIXRS Build for IBM AIX 3.x on RS/6000.
1270   AIX41 Build for IBM AIX 4.x on RS/6000.
1271   AMIGA Build for Commodore Amiga with Intuition OS.
1272   ATT6300 Build for AT&T 6300 PLUS.
1273   ATT7300 Build for AT&T 7300 UNIX PC (3B1).
1274   ATTSV Build for AT&T System III or V UNIX.
1275   AUX Build for Apple A/UX for the Macintosh.
1276   BIGBUFOK OK to use big buffers - "memory is not a problem"
1277   BPS_xxxx Enable SET SPEED xxxx
1278   BSD29 Build for BSD 2.9 or 2.10.
1279   BSD4 Build for BSD 4.2.
1280   BSD41 Build for BSD 4.1.
1281   BSD43 Build for BSD 4.3.
1282   BSD44 Build for BSD 4.4.
1283   C70 Build for BBN C/70.
1284   CIE Build for CIE Systems 680/20.
1285   CKCONINTB4CB Work around prompt-disappears after escape back from
1286   CONNECT.
1287   CKLEARN Build with support for learned scripts.
1288   CKLOGDIAL Enable connection log.
1289   CKMAXPATH Maximum length for a fully qualified filename.
1290   CKREGEX (misnomer) Include [...] or {xxx,xxx,xxx} matching in
1291   ckmatch().
1292   CKSYSLOG Enable syslogging.
1293   CK_ANSIC Enable ANSI C constructs - prototypes, etc.
1294   CK_ANSILIBS Use header files for ANSI C libraries.
1295   CK_APC Enable APC execution by CONNECT module.
1296   CK_CURSES Enable fullscreen file transfer display.
1297   CK_DSYSINI Use system-wide init file, with name supplied by Kermit.
1298   CK_DTRCD DTR/CD flow control is available.
1299   CK_FAST Build with fast Kermit protocol defaults.
1300   CK_FORK_SIG UNIX only: signal() number for CONNECT module forks.
1301   CK_IFRO IF REMOTE command is available (and can run in remote mode).
1302   CK_INI_A System-wide init file takes precedence over user's.
1303   CK_INI_B User's init file takes precedence over the system-wide one.
1304   CK_LABELED Include support for SET FILE TYPE LABELED.
1305   CK_LBRK This version can send Long BREAK.
1306   CK_LINGER Add code to turn of TCP socket "linger" parameter.
1307   CK_MKDIR This version has a zmkdir() command to create directories.
1308   CK_NAWS Include TELNET Negotiate About Window Size support.
1309   CK_NEWTERM Use newterm() rather than initscr() to initialize curses.
1310   CK_PAM Include PAM authentication (might also require -lpam).
1311   CK_PCT_BAR Fullscreen file transfer display should include
1312   "thermometer".
1313   CK_POLL System-V or POSIX based UNIX has poll() function.
1314   CK_POSIX_SIG Use POSIX signal handing: sigjmp_buf, sigsetjmp,
1315   siglongjmp.
1316   CK_READ0 read(fd,&x,0) can be used to test TCP/IP connections.
1317   CK_REDIR Enable the REDIRECT command.
1318   CK_RESEND Include the RESEND command (needs zfseek() + append).
1319   CK_RTSCTS RTS/CTS flow control is available.
1320   CK_SHADOW Include support for shadow passwords (e.g. for IKSD
1321   authentication).
1322   CK_SOCKBUF Enable TCP socket-buffer-size-increasing code.
1323   CK_SOCKS UNIX only: Build with socks library rather than regular
1324   sockets
1325   CK_SOCKS5 UNIX only: Build with socks 5 lib rather than regular
1326   sockets
1327   CK_SPEED Enable control-character unprefixing.
1328   CK_SYSINI="xxxxx" Quoted string to be used as system-wide init file
1329   name.
1330   CK_TIMERS Build with support for dynamically calculated packet
1331   timeouts.
1332   CK_TMPDIR This version of Kermit has an isdir() function.
1333   CK_TTYFD Defined on systems where the communications connection file
1334   descriptor (ttyfd) can be passed to other processes as a command-line
1335   argument via \v(ttyfd).
1336   CK_URL Parse URLs as well as hostnames, etc.
1337   CK_XONXOFF Xon/Xoff flow control available.
1338   CK_XYZ Include support for XYZMODEM protocols.
1339   CK_WREFRESH Curses package includes wrefresh(),clearok() for screen
1340   refresh.
1341   CKFLOAT=type Floating-point data type, "double" or "float".
1342   CKTYP_H=xxx Force include of xxx as <types.h> file.
1343   CLSOPN When hanging up a tty device, also close and reopen it.
1344   CMDDEP Maximum recursion depth for self-referential user-defined fn's.
1345   COHERENT Build for Mark Williams Coherent UNIX
1346   CONGSPD Define if this version has congspd() routine in ck?tio.c
1347   datageneral Build for Data General AOS/VS or AOS/VS II
1348   DCLPOPEN popen() is available but needs to be declared
1349   DEC_TCPIP Build with support for DEC TCP/IP (UCX) for (Open)VMS
1350   DGUX430 Build for DG/UX 4.30
1351   DGUX540 Build for DG/UX 5.40
1352   DEFPAR=x Default parity, 0, 'e', 'o', 'm', or 's'.
1353   DFTTY=xxx Default communications device name.
1354   DIRENT UNIX directory structure to be taken from <dirent.h>.
1355   DIRPWDRP Prompt for password in REMOTE CWD command.
1356   DTILDE Include UNIX ~ notation for username/home-directory
1357   DYNAMIC Allocate file transfer packet buffers dynamically with malloc.
1358   ENCORE Build for Encore Multimax computers.
1359   EXCELAN Build with excelan TCP/IP.
1360   FNFLOAT Include floating-point math functions (logs, sin, cos, exp,
1361   etc)
1362   FT18 Build for Fortune For:Pro 1.8.
1363   FT21 Build for Fortune For:Pro 2.1.
1364   GEMDOS Build for Atari ST GEMDOS.
1365   GFTIMER Use high-precision floating-point file-transfer timers.
1366   GID_T=xxx Group IDs are of type xxx (usually int, short, or gid_t).
1367   HADDRLIST If gethostbyname() hostent struct contains a list of
1368   addresses.
1369   HDBUUCP Build with support for Honey DanBer UUCP.
1370   HPUX Build for Hewlett Packard HP-UX.
1371   HPUX9 Build for Hewlett Packard HP-UX 9.x.
1372   HPUX10 Build for Hewlett Packard HP-UX 10.x.
1373   HWPARITY Define if this version can SET PARITY HARDWARE { EVEN,
1374   ODD...}
1375   I386IX Build for Interactive System V R3.
1376   IFDEBUG Add IF stmts "if (deblog)" before "debug()" calls.
1377   INADDRX TCP/IP inet_addr() type is struct inaddr, not unsigned long.
1378   INTERLAN Build with support for Racal/Interlan TCP/IP.
1379   ISDIRBUG System defs of S_ISDIR and S_ISREG have bug, define
1380   ourselves.
1381   ISIII Build for Interactive System III.
1382   IX370 Build for IBM IX/370.
1383   KANJI Build with Kanji character-set translation support.
1384   LCKDIR UUCP lock directory is /usr/spool/uucp/LCK/.
1385   LFDEVNO UUCP lockfile name uses device numbers, as in SVR4.
1386   LINUXFSSTND For Linux, use FSSTND UUCP lockfile conventions (default).
1387   LOCK_DIR=xxx UUCP lock directory is xxx (quoted string).
1388   LOCKF Use lockf() (in addition to lockfiles) on serial lines
1389   LONGFN BSD long filenames supported using <dir.h> and opendir().
1390   LYNXOS Build for Lynx OS 2.2 or later (POSIX-based).
1391   MAC Build for Apple Macintosh with Mac OS.
1392   MATCHDOT Make wildcards match filenames that start with period (.)
1393   MAXRP=number Maximum receive-packet length.
1394   MAXSP=number Maximum send-packet length.
1395   MDEBUG Malloc-debugging requested.
1396   MINIDIAL Minimum modem dialer support: CCITT, Hayes, Unkown, and None.
1397   MINIX Build for MINIX.
1398   MIPS Build for MIPS workstation.
1399   MULTINET Build with support for TGV MultiNet TCP/IP (VAX/VMS).
1400   M_UNIX Defined by SCO.
1401   NAP The nap() is available (conflicts with SELECT and USLEEP)
1402   NAPHACK The nap() call is available but only as syscall(3112,...)
1403   NDIR BSD long filenames supported using <ndir.h> and opendir().
1404   NDGPWNAM Don't declare getpwnam().
1405   NDSYSERRLIST Don't declare sys_errlist[].
1406   NEEDSELECTDEFS select() is avaible but we need to define FD_blah
1407   ourselves.
1408   NETCMD Build with support for SET HOST /COMMAND and PIPE commands.
1409   NEXT Build for NeXT Mach 1.x or 2.x or 3.0, 3.1, or 3.2.
1410   NEXT33 Build for NeXT Mach 3.3.
1411   NOANSI Disable ANSI C function prototyping.
1412   NOAPC Do not include CK_APC code.
1413   NOARROWKEYS Exclude code to parse ANSI arrow-key sequences.
1414   NOB_xxxx Disable SET SPEED xxxx
1415   NOBIGBUF Override BIGBUFOK when it is the default
1416   NOBRKC Don't try to refer to t_brkc or t_eof tchars structure members.
1417   NOCKFQHOSTNAME Exclude code to get fully qualified hostname in case it
1418   causes core dumps.
1419   NOCCTRAP Disable Control-C (SIGINT) trapping.
1420   NOCKSPEED Disable control-prefix removal feature (SET CONTROL).
1421   NOCKTIMERS Build without support for dynamic timers.
1422   NOCKXYZ Overrides CK_XYZ.
1423   NOCKREGEX Do not include [...] or {xxx,xxx,xxx} matching in ckmatch().
1424   NOCMDL Build with no command-line option processing.
1425   NOCOTFMC No Close(Open()) To Force Mode Change (UNIX version).
1426   NOCSETS Build with no support for character set translation.
1427   NOCYRIL Build with no support for Cyrillic character set translation.
1428   NOCYRILLIC Ditto.
1429   NODEBUG Build with no debug logging capability.
1430   NODIAL Build with no DIAL or SET DIAL commands.
1431   NODISPO Build to always refuse incoming MAIL or REMOTE PRINT files.
1432   DNODISPLAY Build with no file-transfer display.
1433   NOESCSEQ Build with no support for ANSI escape sequence recognition.
1434   NOFAST Do not make FAST Kermit protocol settings the default.
1435   NOFDZERO Do not use file descriptor 0 for remote-mode file transfer.
1436   NOFILEH Do not #include <sys/file.h>.
1437   NOFLOAT Don't include any floating-point data types or operations.
1438   NOFRILLS Build with "no frills" (this should be phased out...)
1439   NOFTRUNCATE Include this on UNIXes that don't have ftruncate().
1440   NOGETUSERSHELL Include this on UNIXes that don't have getusershell().
1441   NOGFTIMER Don't use high-precision floating-point file-transfer
1442   timers.
1443   NOHEBREW Build with no support for Hebrew character sets.
1444   NOHELP Build with no built-in help.
1445   NOIKSD Build with IKSD support excluded.
1446   NOINITGROUPS Include this on UNIXes that don't have initgroups().
1447   NOICP Build with no interactive command parser.
1448   NOJC Build with no support for job control (suspend).
1449   NOKANJI Build with no support for Japanese Kanji character sets.
1450   NOKVERBS Build with no support for keyboard verbs (\Kverbs).
1451   NOLATIN2 Build with no ISO Latin-2 character-set translation support.
1452   NOLEARN Build with no support for learned scripts.
1453   NOLINKBITS Use of S_ISLNK and _IFLNK untrustworthy; use readlink()
1454   instead.
1455   NOLOCAL Build without any local-mode features: No Making Connections.
1456   NOLOGDIAL Disable connection log.
1457   NOLOGIN Build without IKSD (network login) support.
1458   NOLSTAT Not OK to use lstat().
1459   NOMDMHUP Build without "modem-specific hangup" (e.g. ATH0) feature.
1460   NOMHHOST Exclude the multihomed-host TCP/IP code (if compilcation
1461   errors)
1462   NOMINPUT Build without MINPUT command.
1463   NOMSEND Build with no MSEND command.
1464   NONAWS Do not include TELNET Negotiate About Window Size support.
1465   NONET Do not include any network support.
1466   NONOSETBUF (See NOSETBUF)
1467   NOPARSEN Build without automatic parity detection.
1468   NOPIPESEND Disable file transfer using pipes and filters.
1469   NOPOLL Override CK_POLL definition.
1470   NOPOPEN The popen() library call is not available.
1471   NOPURGE Build with no PURGE command.
1472   NOPUSH Build with no escapes to operating system.
1473   NOREALPATH In UNIX, realpath() function is not available.
1474   NORECALL Disable the command-recall feature.
1475   NOREDIRECT Disable REDIRECT command.
1476   NORENAME Don't use rename() system call, use link()/unlink() (UNIX).
1477   NORESEND Build with no RESEND command.
1478   NORETRY Build with no command-retry feature.
1479   NOSCRIPT Build with no SCRIPT command.
1480   NOSELECT Don't try to use select().
1481   NOSERVER Build with no SERVER mode and no server-related commands.
1482   NOSETBUF Don't make console writes unbuffered.
1483   NONOSETBUF DO make console writes unbuffered.
1484   NOSETREU setreuid() and/or setregid() not available.
1485   NOSHOW Build with no SHOW command (not recommended!).
1486   NOSIGWINCH Disable SIGWINCH signal trapping.
1487   NOSPL Build with no script programming language.
1488   NOSTAT Don't call stat() from mainline code.
1489   NOSYMLINK Include this for UNIXes that don't have readlink().
1490   NOSYSIOCTLH Do not #include <sys/ioctl.h>.
1491   NOSYSTIMEH Co not include <sys/time.h>.
1492   NOSYSLOG Disable syslogging code.
1493   NOTCPOPTS Build with no SET TCP options or underlying support.
1494   NOTLOG Build with no support for transaction logging.
1495   NOTM_ISDST Struct tm has no tm_isdst member.
1496   NOUNICODE Build with no support for Unicode character-set translation.
1497   NOURL Don't parse URLs
1498   NOUUCP Build with no UUCP lockfile support (dangerous!).
1499   NOWARN Make EXIT WARNING be OFF by default (otherwise it's ON).
1500   NOWREFRESH Override built-in definition of CK_WREFRESH (q.v.).
1501   NOXFER Build with no Kermit or other file-transfer protocols.
1502   NOXMIT Build with no TRANSMIT command.
1503   NOXPRINT Disables transparent print code.
1504   OLDMSG Use old "entering server mode" message (see [164]ckcmai.c).
1505   OLINUXHISPEED Build in old Linux hi-serial-speed code (for Linux <=
1506   1.0).
1507   OPENBSD Build for OpenBSD.
1508   OS2 Build for OS/2.
1509   OSF Build for OSF/1.
1510   OSFPC Build for OSF/1 on a PC.
1511   OSF32 Digital UNIX 3.2 or later.
1512   OSF40 Build for Digital UNIX 4.0.
1513   OSF50 Build for Digital UNIX 5.0.
1514   OSK Build for OS-9.
1515   OXOS Build for Olivetti X/OS 2.3.
1516   PCIX Build for PC/IX
1517   PID_T=xxx Type for pids is xxx (normally int or pid_t).
1518   POSIX Build for POSIX: use POSIX header files, functions, etc.
1519   _POSIX_SOURCE Disable non-POSIX features.
1520   PROVX1 Build for Venix 1.0 on DEC Professional 3xx.
1521   PTX Build for Dynix/PTX
1522   PWID_T=xxx getpwid() type is xxx.
1523   RBSIZ=xxx Define overall size of receive-packet buffer (with DYNAMIC).
1524   RDCHK rdchk() system call is available.
1525   RENAME rename() system call is available (UNIX).
1526   RTAIX Build for AIX 2.2.1 on IBM RT PC.
1527   RTU Build for Masscomp / Concurrent RTU.
1528   SAVEDUID BSD or other non-AT&T UNIX has saved-setuid feature.
1529   SBSIZ=xxx Define overall size of send-packet buffer (use with
1530   DYNAMIC).
1531   SDIRENT Directory structure specified in <sys/dirent.h>.
1532   SELECT select() function available (conflicts with RDCHK and CK_POLL)
1533   SELECT_H Include <sys/select.h> for select()-releated definitions.
1534   SETEUID BSD 4.4-style seteXid() functions available.
1535   SIG_V Type for signal() is void. Used to override normal assumption.
1536   SIG_I Type for signal() is int. Used to override normal assumption.
1537   SOCKOPT_T Override default data type for get/setsockopt() option
1538   length.
1539   SOLARIS Build for Solaris.
1540   SOLARIS25 Build for Solaris 2.5 or later.
1541   SONYNEWS Build for Sony NEWS-OS.
1542   STERMIOX <sys/termiox.h> is available.
1543   STRATUS Build for Stratus VOS.
1544   STRATUSX25 Include Stratus VOS X.25 support.
1545   SUN4S5 Build for SUNOS 4.x in the System V R3 environment.
1546   SUNOS4 Build for SUNOS 4.0 in the BSD environment.
1547   SUNOS41 Build for SUNOS 4.1 in the BSD environment.
1548   SUNX25 Build with support for SunLink X.25.
1549   SVR3 Build for AT&T System V Release 3.
1550   SVR3JC Allow job control support on System V Release 3 UNIX versions.
1551   SVR4 Build for AT&T System V Release 4.
1552   SW_ACC_ID UNIX only -- swap real & effective ids around access()
1553   calls.
1554   sxaE50 Build for PFU Compact A Series SX/A TISP.
1555   SYSLOGLEVEL=n Force syslogging at given level.
1556   SYSTIMEH Include <sys/time.h>.
1557   SYSUTIMEH Include <sys/utime.h> for setting file dates (88OPEN)
1558   TCPSOCKET Build with support for TCP/IP via Berkeley sockets library.
1559   TERMIOX <termiox.h> header file is available (mostly SVR4).
1560   TNCODE Include TELNET-specific code.
1561   TOWER1 Build for NCR Tower 1632 with OS 1.02.
1562   TRS16 Build for Tandy 16/6000.
1563   UID_T=xxx Type for uids is xxx (normally int or uid_t).
1564   UNIX Must be defined for all UNIX versions.
1565   UNIX351M AT&T UNIX 3.51m on the AT&T 7300 UNIX PC.
1566   USE_ARROWKEYS Include code to parse ANSI arrow-key sequences.
1567   USE_LSTAT OK to use lstat().
1568   USE_MEMCPY Define this if memcpy()/memset()/memmove() available.
1569   USE_STRERROR Define this if strerror() is available.
1570   USLEEP usleep() system call available (conflicts with NAP & SELECT).
1571   UTEK Build for Tektronix workstations with UTEK OS.
1572   UTIMEH Include <utime.h> for setting file dates (SVR4, POSIX)
1573   UTS24 Build for Amdahl UTS 2.4.
1574   V7 Build for Version 7 UNIX.
1575   VMS Build for VAX/VMS.
1576   VOID=xxx VOID type for functions (int or void).
1577   VXVE Build for CDC VX/VE 5.2.1.
1578   WAIT_T=xxx Type of argument passed to wait().
1579   WINTCP Build with Wollongong VAX/VMS TCP/IP (implies TCPSOCKET)
1580   WOLLONGONG Build with Wollongong UNIX TCP/IP (implies TCPSOCKET)
1581   XENIX Build for Xenix (SCO, Tandy, others).
1582   XNDIR Support for BSD long filenames via <sys/ndir.h>.
1583   XYZ_INTERNAL Support for XYZMODEM protocols is internal, not external.
1584   ZFCDAT Define this if zfcdat() function is available in Kermit.
1585   ZILOG Build for Zilog ZEUS.
1586   ZJDATE Has zjdate() function that converts date to Julian format.
1587   XPRINT Transparent print code included in CONNECT module.
1588   
1589   [ [165]Top ] [ [166]Contents ] [ [167]C-Kermit Home ] [ [168]Kermit
1590   Home ]
1591     _________________________________________________________________
1592   
1593   
1594    C-Kermit Configuration Options / [169]The Kermit Project /
1595    [170]Columbia University / [171]kermit@columbia.edu / 14 March 2003
1596
1597References
1598
1599   1. http://www.columbia.edu/kermit/
1600   2. http://www.columbia.edu/
1601   3. http://www.columbia.edu/kermit/ckccfg.html
1602   4. http://www.columbia.edu/kermit/ckermit.html
1603   5. http://www.columbia.edu/kermit/index.html
1604   6. http://www.columbia.edu/kermit/ckccfg.html#x1
1605   7. http://www.columbia.edu/kermit/ckccfg.html#x2
1606   8. http://www.columbia.edu/kermit/ckccfg.html#x3
1607   9. http://www.columbia.edu/kermit/ckccfg.html#x4
1608  10. http://www.columbia.edu/kermit/ckccfg.html#x5
1609  11. http://www.columbia.edu/kermit/ckccfg.html#x6
1610  12. http://www.columbia.edu/kermit/ckccfg.html#x7
1611  13. http://www.columbia.edu/kermit/ckccfg.html#x8
1612  14. http://www.columbia.edu/kermit/ckccfg.html#x9
1613  15. http://www.columbia.edu/kermit/ckccfg.html#x10
1614  16. http://www.columbia.edu/kermit/ckccfg.html#x11
1615  17. http://www.columbia.edu/kermit/ckccfg.html#x12
1616  18. http://www.columbia.edu/kermit/ckccfg.html#x13
1617  19. http://www.columbia.edu/kermit/ckccfg.html#x14
1618  20. http://www.columbia.edu/kermit/ckccfg.html#xa1
1619  21. http://www.columbia.edu/kermit/ckuins.html
1620  22. http://www.columbia.edu/kermit/ckermit.html
1621  23. http://www.columbia.edu/kermit/index.html
1622  24. http://www.columbia.edu/kermit/ckccfg.html#top
1623  25. http://www.columbia.edu/kermit/ckccfg.html#contents
1624  26. http://www.columbia.edu/kermit/ckccfg.html#x2
1625  27. http://www.columbia.edu/kermit/ckccfg.html#x0
1626  28. http://www.columbia.edu/kermit/ckermit.html
1627  29. http://www.columbia.edu/kermit/index.html
1628  30. http://www.columbia.edu/kermit/ckccfg.html#top
1629  31. http://www.columbia.edu/kermit/ckccfg.html#contents
1630  32. http://www.columbia.edu/kermit/ckccfg.html#x3
1631  33. http://www.columbia.edu/kermit/ckccfg.html#x1
1632  34. ftp://kermit.columbia.edu/kermit/c-kermit/ckutio.c
1633  35. ftp://kermit.columbia.edu/kermit/c-kermit/ckcdeb.h
1634  36. ftp://kermit.columbia.edu/kermit/c-kermit/ckuus3.c
1635  37. ftp://kermit.columbia.edu/kermit/c-kermit/ckcdeb.h
1636  38. ftp://kermit.columbia.edu/kermit/c-kermit/ckutio.c
1637  39. ftp://kermit.columbia.edu/kermit/c-kermit/ckutio.c
1638  40. http://www.columbia.edu/kermit/ckermit.html
1639  41. http://www.columbia.edu/kermit/index.html
1640  42. http://www.columbia.edu/kermit/ckccfg.html#top
1641  43. http://www.columbia.edu/kermit/ckccfg.html#contents
1642  44. http://www.columbia.edu/kermit/ckccfg.html#x4
1643  45. http://www.columbia.edu/kermit/ckccfg.html#x2
1644  46. ftp://kermit.columbia.edu/kermit/c-kermit/makefile
1645  47. http://www.columbia.edu/kermit/ckuins.html
1646  48. http://www.columbia.edu/kermit/ckuins.html#x4
1647  49. http://www.columbia.edu/kermit/ckuins.html#x9.2
1648  50. ftp://kermit.columbia.edu/kermit/c-kermit/ckuusx.c
1649  51. ftp://kermit.columbia.edu/kermit/c-kermit/ckutio.c
1650  52. ftp://kermit.columbia.edu/kermit/c-kermit/ckufio.c
1651  53. ftp://kermit.columbia.edu/kermit/c-kermit/ckuusx.c
1652  54. ftp://kermit.columbia.edu/kermit/c-kermit/ckucmd.c
1653  55. http://www.columbia.edu/kermit/ckermit.html
1654  56. http://www.columbia.edu/kermit/index.html
1655  57. http://www.columbia.edu/kermit/ckccfg.html#top
1656  58. http://www.columbia.edu/kermit/ckccfg.html#contents
1657  59. http://www.columbia.edu/kermit/ckccfg.html#x5
1658  60. http://www.columbia.edu/kermit/ckccfg.html#x3
1659  61. http://www.columbia.edu/kermit/unicode.html
1660  62. http://www.columbia.edu/kermit/ckermit.html
1661  63. http://www.columbia.edu/kermit/index.html
1662  64. http://www.columbia.edu/kermit/ckccfg.html#top
1663  65. http://www.columbia.edu/kermit/ckccfg.html#contents
1664  66. http://www.columbia.edu/kermit/ckccfg.html#x6
1665  67. http://www.columbia.edu/kermit/ckccfg.html#x4
1666  68. ftp://kermit.columbia.edu/kermit/c-kermit/ckuusr.h
1667  69. ftp://kermit.columbia.edu/kermit/c-kermit/ckuusr.h
1668  70. http://www.columbia.edu/kermit/ckermit.html
1669  71. http://www.columbia.edu/kermit/index.html
1670  72. http://www.columbia.edu/kermit/ckccfg.html#top
1671  73. http://www.columbia.edu/kermit/ckccfg.html#contents
1672  74. http://www.columbia.edu/kermit/ckccfg.html#x7
1673  75. http://www.columbia.edu/kermit/ckccfg.html#x5
1674  76. http://www.columbia.edu/kermit/ckccfg.html#x6.1
1675  77. http://www.columbia.edu/kermit/ckccfg.html#x6.2
1676  78. http://www.columbia.edu/kermit/ckccfg.html#x6.3
1677  79. http://www.columbia.edu/kermit/ckccfg.html#x6.4
1678  80. http://www.columbia.edu/kermit/ckccfg.html#x4
1679  81. http://www.columbia.edu/kermit/gkermit.html
1680  82. ftp://kermit.columbia.edu/kermit/c-kermit/ckuusr.h
1681  83. ftp://kermit.columbia.edu/kermit/c-kermit/ckcker.h
1682  84. ftp://kermit.columbia.edu/kermit/c-kermit/ckcdeb.h
1683  85. http://www.columbia.edu/kermit/ckermit.html
1684  86. http://www.columbia.edu/kermit/index.html
1685  87. http://www.columbia.edu/kermit/ckccfg.html#top
1686  88. http://www.columbia.edu/kermit/ckccfg.html#contents
1687  89. http://www.columbia.edu/kermit/ckccfg.html#x8
1688  90. http://www.columbia.edu/kermit/ckccfg.html#x6
1689  91. ftp://kermit.columbia.edu/kermit/c-kermit/ckudia.c
1690  92. http://www.columbia.edu/kermit/ckermit.html
1691  93. http://www.columbia.edu/kermit/index.html
1692  94. http://www.columbia.edu/kermit/ckccfg.html#top
1693  95. http://www.columbia.edu/kermit/ckccfg.html#contents
1694  96. http://www.columbia.edu/kermit/ckccfg.html#x9
1695  97. http://www.columbia.edu/kermit/ckccfg.html#x7
1696  98. http://www.columbia.edu/kermit/ckccfg.html#x8.1
1697  99. http://www.columbia.edu/kermit/ckccfg.html#x8.2
1698 100. http://www.columbia.edu/kermit/ckccfg.html#x8.3
1699 101. http://www.columbia.edu/kermit/ckccfg.html#x8.1.1
1700 102. http://www.columbia.edu/kermit/ckccfg.html#x8.1.2
1701 103. http://www.columbia.edu/kermit/ckccfg.html#x8.1.3
1702 104. http://www.columbia.edu/kermit/ckccfg.html#x8.1.4
1703 105. http://www.columbia.edu/kermit/ckccfg.html#x8.1.5
1704 106. http://www.columbia.edu/kermit/ckccfg.html#x8.1.6
1705 107. ftp://kermit.columbia.edu/kermit/c-kermit/ckcnet.h
1706 108. ftp://kermit.columbia.edu/kermit/c-kermit/ckctel.c
1707 109. ftp://kermit.columbia.edu/kermit/c-kermit/ckctel.c
1708 110. ftp://kermit.columbia.edu/kermit/c-kermit/ckctel.h
1709 111. ftp://kermit.columbia.edu/kermit/c-kermit/ckcftp.c
1710 112. http://www.columbia.edu/kermit/ckermit.html
1711 113. ftp://kermit.columbia.edu/kermit/c-kermit/ckcnet.c
1712 114. ftp://kermit.columbia.edu/kermit/c-kermit/ckcnet.h
1713 115. ftp://kermit.columbia.edu/kermit/c-kermit/ckutio.c
1714 116. http://www.columbia.edu/kermit/ckccfg.html#x11
1715 117. mailto:kermit@columbia.edu
1716 118. http://www.columbia.edu/kermit/ckermit.html
1717 119. http://www.columbia.edu/kermit/index.html
1718 120. http://www.columbia.edu/kermit/ckccfg.html#top
1719 121. http://www.columbia.edu/kermit/ckccfg.html#contents
1720 122. http://www.columbia.edu/kermit/ckccfg.html#x10
1721 123. http://www.columbia.edu/kermit/ckccfg.html#x8
1722 124. http://www.columbia.edu/kermit/ckermit.html
1723 125. http://www.columbia.edu/kermit/index.html
1724 126. http://www.columbia.edu/kermit/ckccfg.html#top
1725 127. http://www.columbia.edu/kermit/ckccfg.html#contents
1726 128. http://www.columbia.edu/kermit/ckccfg.html#x11
1727 129. http://www.columbia.edu/kermit/ckccfg.html#x9
1728 130. http://www.columbia.edu/kermit/ckuins.html#x11
1729 131. http://www.columbia.edu/kermit/ckuins.html
1730 132. http://www.columbia.edu/kermit/ckermit.html
1731 133. http://www.columbia.edu/kermit/index.html
1732 134. http://www.columbia.edu/kermit/ckccfg.html#top
1733 135. http://www.columbia.edu/kermit/ckccfg.html#contents
1734 136. http://www.columbia.edu/kermit/ckccfg.html#x12
1735 137. http://www.columbia.edu/kermit/ckccfg.html#x10
1736 138. ftp://kermit.columbia.edu/kermit/c-kermit/ckucns.c
1737 139. ftp://kermit.columbia.edu/kermit/c-kermit/ckucon.c
1738 140. http://www.columbia.edu/kermit/ckermit.html
1739 141. http://www.columbia.edu/kermit/index.html
1740 142. http://www.columbia.edu/kermit/ckccfg.html#top
1741 143. http://www.columbia.edu/kermit/ckccfg.html#contents
1742 144. http://www.columbia.edu/kermit/ckccfg.html#x13
1743 145. http://www.columbia.edu/kermit/ckccfg.html#x11
1744 146. http://www.columbia.edu/kermit/ckermit.html
1745 147. http://www.columbia.edu/kermit/index.html
1746 148. http://www.columbia.edu/kermit/ckccfg.html#top
1747 149. http://www.columbia.edu/kermit/ckccfg.html#contents
1748 150. http://www.columbia.edu/kermit/ckccfg.html#x14
1749 151. http://www.columbia.edu/kermit/ckccfg.html#x12
1750 152. ftp://kermit.columbia.edu/kermit/c-kermit/ckcdeb.h
1751 153. http://www.columbia.edu/kermit/ckermit.html
1752 154. http://www.columbia.edu/kermit/index.html
1753 155. http://www.columbia.edu/kermit/ckccfg.html#top
1754 156. http://www.columbia.edu/kermit/ckccfg.html#contents
1755 157. http://www.columbia.edu/kermit/ckccfg.html#x13
1756 158. http://www.columbia.edu/kermit/ckermit.html
1757 159. http://www.columbia.edu/kermit/index.html
1758 160. http://www.columbia.edu/kermit/ckccfg.html#top
1759 161. http://www.columbia.edu/kermit/ckccfg.html#contents
1760 162. ftp://kermit.columbia.edu/kermit/c-kermit/ckcdeb.h
1761 163. ftp://kermit.columbia.edu/kermit/c-kermit/ckcnet.h
1762 164. ftp://kermit.columbia.edu/kermit/c-kermit/ckcmai.c
1763 165. http://www.columbia.edu/kermit/ckccfg.html#top
1764 166. http://www.columbia.edu/kermit/ckccfg.html#contents
1765 167. http://www.columbia.edu/kermit/ckermit.html
1766 168. http://www.columbia.edu/kermit/index.html
1767 169. http://www.columbia.edu/kermit/index.html
1768 170. http://www.columbia.edu/
1769 171. mailto:kermit@columbia.edu
Note: See TracBrowser for help on using the repository browser.