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 | |
---|
1597 | References |
---|
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 |
---|