-
Notifications
You must be signed in to change notification settings - Fork 2
/
twinsock.rtf
524 lines (521 loc) · 47.3 KB
/
twinsock.rtf
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
{\rtf1\ansi \deff0\deflang1024{\fonttbl{\f0\froman Times New Roman;}{\f1\froman Symbol;}{\f2\fswiss Arial;}{\f3\froman Tms Rmn;}{\f4\fswiss Helv;}{\f5\fmodern Courier New;}{\f6\fnil Crillee;}}{\colortbl;\red0\green0\blue0;
\red0\green0\blue255;\red0\green255\blue255;\red0\green255\blue0;\red255\green0\blue255;\red255\green0\blue0;\red255\green255\blue0;\red255\green255\blue255;\red0\green0\blue127;\red0\green127\blue127;\red0\green127\blue0;\red127\green0\blue127;
\red127\green0\blue0;\red127\green127\blue0;\red127\green127\blue127;\red192\green192\blue192;}{\stylesheet{\s243\tqc\tx4320\tqr\tx8640 \f3\lang2057 \sbasedon0\snext243 header;}{\s244 \f3\fs16\up6\lang2057 \sbasedon0\snext0 footnote reference;}{\s245
\f3\fs20\lang2057 \sbasedon0\snext245 footnote text;}{\s252\li360 \b\f3\lang2057 \sbasedon0\snext255 heading 3;}{\s253\sb120 \b\f4\lang2057 \sbasedon0\snext0 heading 2;}{\s254\sb240 \b\f4\ul\lang2057 \sbasedon0\snext0 heading 1;}{\s255\li720 \f3\lang2057
\sbasedon0\snext255 Normal Indent;}{\f3\lang2057 \snext0 Normal;}{\s2\li567 \b\f3\lang2057 \sbasedon0\snext2 CRT;}{\s3\li567 \f3\lang2057 \sbasedon0\snext3 Example;}{\s4\fi-288\li576 \f3\lang2057 \sbasedon0\snext4 Level2;}{\s5\fi-144\li144 \f3\lang2057
\sbasedon0\snext5 Level1;}{\s6\fi-288\li1152 \f3\lang2057 \sbasedon0\snext6 Level3;}{\s7\li144 \f3\lang2057 \sbasedon5\snext7 Follow1;}{\s8\li576 \f3\lang2057 \sbasedon4\snext8 Follow2;}{\s9\li1152 \f3\lang2057 \sbasedon6\snext9 Follow3;}}{\info
{\author Sycomp}{\operator Sycomp}{\creatim\yr1995\mo3\dy30\hr22\min5}{\revtim\yr1995\mo3\dy30\hr22\min5}{\printim\yr1995\mo11\dy4\hr15\min3}{\version2}{\edmins395}{\nofpages0}{\nofwords65536}{\nofchars65536}{\vern16417}}
\paperw11906\paperh16838\margl1800\margr1800\margt1440\margb1440\gutter0 \widowctrl\ftnbj \sectd \linex0\headery709\footery709\colsx709\endnhere \pard\plain \qc \f3\lang2057 {\fs16\up6 #{\footnote \pard\plain \s245 \f3\fs20\lang2057 {\fs16\up6 #} Contents
}}{\b\fs16\up6 }{\fs16\up6 ${\footnote \pard\plain \s245 \f3\fs20\lang2057 {\fs16\up6 $} TwinSock 1.4 Help Contents}}{\b\fs16\up6 }{\b\fs20\up6 {\pict\wmetafile8\picw952\pich952\picwgoal540\pichgoal540
010009000003de0700000000ba0700000000050000000b0200000000050000000c022400240005000000090200000000050000000102ffffff000400000007010300ba070000430f2000cc000000240024000000000024002400000000002800000024000000240000000100180000000000300f0000000000000000000000
00000000000000c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0
c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0ffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffff000000808080c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0000000ffffffffffffffffffffffffffffffc0c0c0c0c0c0c0c0c0c0c0c0ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ff000000ffffffc0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0000000ffffffffffffffffffffffffffffffc0c0c0c0c0c0c0c0c0c0c0c0ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000000000808080ffffffc0c0c0c0c0c0c0c0c0
c0c0c0c0c0c0c0c0c0c0c0c0ffffff000000ffffffffffffffffffffffffffffffc0c0c0c0c0c0c0c0c0c0c0c0ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000000000808080ffffff808080ffffffc0c0c0c0c0c0c0c0c0c0c0c0c0c0c0ffffff000000ffffffff
ffffffffffffffffffffffffffffc0c0c0c0c0c0c0c0c0c0c0c0ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000000000808080ffffffffffffffffff808080ffffffc0c0c0c0c0c0c0c0c0ffffff000000ffffffffffffffffffffffffffffffffffff000000c0c0c0c0c0
c0c0c0c0c0c0c0ffffffffffffffffff000000000000000000000000000000000000000000000000ffffff000000808080ffffffffffffffffffffffffffffff000000ffffffffffffffffff000000ffffffffffffffffffffffffffffffffffff000000808080c0c0c0c0c0c0c0c0c0c0c0c0ffffffffffff808080808080
808080808080808080808080808080808080808080000000ffffffffffffffffffffffffffffffffffff000000000000808080808080808080ffffffffffffffffffffffffffffffffffff000000808080c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0ffffff808080c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0
c0c0808080000000ffffffffffffffffffffffff000000000000808080ffffffffffffffffffffffffffffffffffffffffffffffff000000808080c0c0c0ffffffc0c0c0c0c0c0c0c0c0c0c0c0808080ffffffc0c0c0808080000000c0c0c0c0c0c0c0c0c0808080000000c0c0c0c0c0c0808080000000ffffffffffff0000
00000000808080ffffffffffffffffff000000000000000000000000000000000000808080c0c0c0ffffff000000c0c0c0c0c0c0c0c0c0c0c0c0808080ffffffc0c0c0808080000000c0c0c0c0c0c0c0c0c0808080000000c0c0c0c0c0c0808080000000ffffffffffff000000808080ffffffffffffffffff000000808080
808080808080808080808080000000808080ffffff000000ffffffc0c0c0c0c0c0c0c0c0c0c0c0808080ffffffc0c0c0808080000000c0c0c0c0c0c0c0c0c0808080000000c0c0c0c0c0c0808080000000ffffffffffffffffffffffffffffffffffff000000808080808080808080808080808080808080808080ffffff00
0000ffffffffffffc0c0c0c0c0c0c0c0c0c0c0c0808080ffffffc0c0c0808080000000c0c0c0c0c0c0c0c0c0808080000000c0c0c0c0c0c0808080000000ffffffffffffffffffffffffffffff000000808080808080808080c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0808080808080000000ffffffc0c0c0c0c0c0c0c0c0c0c0
c0808080ffffffc0c0c0808080808080c0c0c0c0c0c0c0c0c0808080808080c0c0c0c0c0c0808080000000ffffffffffffffffffffffff000000808080808080808080c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0808080000000ffffffc0c0c0c0c0c0c0c0c0c0c0c0808080ffffffc0c0c0c0c0c0c0c0c0808080
000000000000c0c0c0c0c0c0c0c0c0c0c0c0808080000000ffffffffffffffffffffffff000000808080808080c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0000000ffffffc0c0c0c0c0c0c0c0c0c0c0c0808080ffffffc0c0c0c0c0c0c0c0c0808080000000000000c0c0c0c0c0c0c0c0c0c0c0c080
8080000000ffffffffffffffffffffffff000000808080c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0000000ffffffc0c0c0c0c0c0c0c0c0c0c0c0ffffff808080ffffffc0c0c0c0c0c0808080808080808080c0c0c0c0c0c0c0c0c0808080000000ffffffffffffffffffffffffffffffffff
ff000000ffffffc0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0000000ffffffc0c0c0c0c0c0c0c0c0c0c0c0ffffffffffff808080ffffffffffffffffffffffffffffffffffffffffffffffff000000ffffffffffffffffffffffffffffffffffff000000000000808080ffffffc0c0c0c0c0c0c0c0c0
c0c0c0c0c0c0c0c0c0c0c0c0ffffff000000ffffffc0c0c0c0c0c0c0c0c0c0c0c0ffffffffffffffffff808080808080808080808080808080808080808080808080ffffffffffffffffffffffffffffffffffff000000000000808080ffffff808080ffffffc0c0c0c0c0c0c0c0c0c0c0c0c0c0c0ffffff000000ffffffff
ffffc0c0c0c0c0c0c0c0c0c0c0c0ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff000000000000808080ffffffffffffffffff808080ffffffc0c0c0c0c0c0c0c0c0ffffff000000ffffffffffffffffffc0c0c0c0c0c0c0c0c0c0c0c0ffffffffff
ffffffffffffffffffffffffffffffff000000000000000000000000000000000000000000000000ffffff000000808080ffffffffffffffffffffffffffffff000000ffffffffffffffffff000000ffffffffffffffffffffffffc0c0c0c0c0c0c0c0c0c0c0c0ffffffffffffffffffffffffffffffffffff808080808080
808080808080808080808080808080808080808080000000ffffffffffffffffffffffffffffffffffff000000000000808080808080808080ffffffffffffffffffffffffffffffc0c0c0c0c0c0c0c0c0c0c0c0ffffffffffffffffffffffffffffff808080c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0
c0c0808080000000ffffffffffffffffffffffff000000000000808080ffffffffffffffffffffffffffffffffffffffffffffffffc0c0c0c0c0c0c0c0c0c0c0c0ffffffffffffffffffffffff808080ffffffc0c0c0808080000000c0c0c0c0c0c0c0c0c0808080000000c0c0c0c0c0c0808080000000ffffffffffff0000
00000000808080ffffffffffffffffffffffffffffffffffffffffffffffffffffffc0c0c0c0c0c0c0c0c0c0c0c0ffffffffffffffffffffffff808080ffffffc0c0c0808080000000c0c0c0c0c0c0c0c0c0808080000000c0c0c0c0c0c0808080000000ffffffffffff000000808080ffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffc0c0c0c0c0c0c0c0c0c0c0c0ffffffffffffffffffffffff808080ffffffc0c0c0808080000000c0c0c0c0c0c0c0c0c0808080000000c0c0c0c0c0c0808080000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc0c0c0c0
c0c0c0c0c0c0c0c0ffffffffffffffffffffffff808080ffffffc0c0c0808080000000c0c0c0c0c0c0c0c0c0808080000000c0c0c0c0c0c0808080000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc0c0c0c0c0c0c0c0c0c0c0c0ffffffffffffffffffffff
ff808080ffffffc0c0c0808080808080c0c0c0c0c0c0c0c0c0808080808080c0c0c0c0c0c0808080000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc0c0c0c0c0c0c0c0c0c0c0c0ffffffffffffffffffffffff808080ffffffc0c0c0c0c0c0c0c0c0808080
000000000000c0c0c0c0c0c0c0c0c0c0c0c0808080000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc0c0c0c0c0c0c0c0c0c0c0c0ffffffffffffffffffffffff808080ffffffc0c0c0c0c0c0c0c0c0808080000000000000c0c0c0c0c0c0c0c0c0c0c0c080
8080000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc0c0c0c0c0c0c0c0c0c0c0c0ffffffffffffffffffffffffffffff808080ffffffc0c0c0c0c0c0808080808080808080c0c0c0c0c0c0c0c0c0808080000000ffffffffffffffffffffffffffffffffff
ffffffffffffffffffffffffffffffffffffffffffffffffffffffffc0c0c0c0c0c0c0c0c0c0c0c0ffffffffffffffffffffffffffffffffffff808080ffffffffffffffffffffffffffffffffffffffffffffffff000000ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffff
ffffffffffffffffffc0c0c0c0c0c0c0c0c0c0c0c0ffffffffffffffffffffffffffffffffffffffffff808080808080808080808080808080808080808080808080ffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffffc0c0c0c0c0c0c0c0c0c0
c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0
c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0c0030000000000}}{\b\fs36
\par }{\b\fs36 TwinSoc}{\b\fs36 k 2.0}{\b\fs36\up6
\par }{\b Troy's Windows Sockets}{\b
\par }{\b Copyright }{\field\flddirty{\*\fldinst {\b SYMBOL 211 }{\b \\}{\b f "Symbol"}}{\fldrslt }}{\b 1994-1995 Troy Rollo}{\b
\par }{\b Released November 1995}{\b
\par }\pard {\b\fs28
\par }{\b TwinSock is an unsupported, free software product. Do not attempt to contact the authors or the authors' employers or businesses, or any of the program's sponsors for support or other assistance with TwinSock.}{\b
\par }{\b\fs28
\par }{\b\fs28 TwinSock is sponsored by }{\b\fs28\uldb CorVu Pty Ltd}{\b\v\fs28 CorVu}{\b\fs28
\par }{\b\fs28
\par }{\b\fs28 Contents}{\b
\par }\tab {\uldb What's New?}{\v Changes20}
\par
\par \tab {\uldb Licensing}{\v Licensing}
\par \tab {\uldb What Is TwinSock?}{\v Whatis}
\par \tab {\uldb Installing TwinSock}{\v Installing}
\par
\par \tab {\uldb Starting TwinSock}{\v Starting}
\par \tab {\uldb Shutting Down Twinsock}{\v Shutdown}
\par
\par \tab {\uldb Using Port Remapping}{\v Remapping}
\par \tab {\uldb Using Scripting}{\v Scripting}
\par \tab {\uldb Setting Up Name Servers}{\v Resolver}
\par
\par \tab {\uldb Applications Known To Work With TwinSock 2.0}{\v apps}
\par
\par \tab {\uldb If you have problems}{\v problems}
\par \tab {\uldb Enhancements and Bug Reports}{\v Reports}
\par
\par \tab {\uldb TODO and Bugs}{\v TODO}
\par \tab {\uldb Revision History}{\v History}
\par \tab {\uldb Contributors}{\v Contributors}
\par
\par \page {\fs16\up6 #{\footnote \pard\plain \s245 \f3\fs20\lang2057 {\fs16\up6 #} Licensing}}{\b }{\fs16\up6 ${\footnote \pard\plain \s245 \f3\fs20\lang2057 {\fs16\up6 $} Licensing}}{\fs16\up6 }{\b
\par }\pard \qc {\b\fs32 Troy Rollo's "Sponsorware" License}{\b\fs32
\par }\pard\plain \s253\sb120 \b\f4\lang2057 Synopsis
\par \pard\plain \f3\lang2057 How we can continue to provide software to you free of charge while still covering rising costs.
\par \pard\plain \s253\sb120 \b\f4\lang2057 Preamble
\par \pard\plain \f3\lang2057
Ten years ago, it was easy to find free software for all environments. Today, finding free software for Windows is a difficult task. Most of the offerings on public archive sites are "shareware", requiring payment for continued use.
\par
\par Much of the move to shareware has been attributed to the rising costs of the production of this software. Development tools are more expensive, and expensive CD-ROM subscriptions are required to stay abreast of changes.
\par
\par In addition to these problems, new problems have arisen with the recent explosion of interest in the Internet. Every man and his dog is now able to publish, and at times the material published can be slanderous or wildly inaccurate. Producing software for
free means that the author is exposed to this sort of treatment without receiving any funds with which to fight it.
\par
\par A further area of concern is that of trademarks. While the trademark of a free sof
tware product does have the protection of law, the cost of pursuing a trademark abuse case in the courts is upwards of $US20,000, not including the travel costs required to proceed with a case on the other side of the world, and in order to claim compensa
tion (for instance, the cost of the proceedings), you must have the trademark registered in a jurisdiction recognised by the court (this means having registration in at least your own country, the USA, and at least one European country) - more money.
\par
\par The sponsorware concept is aimed at providing an alternative to fund the costs of development without having to sacrifice the free nature of the software. Sponsorware may be either Free Software as defined by Richard Stallman, or public domain, the only d
ifference being that sponsorware is distributed with paid advertising material contained in it, and that any redistribution of the software in verbatim or modified form must contain that advertising until a stated date. There may also be an exclusion on i
ncluding advertising from vendors competing with existing advertisers.
\par
\par If you contact a company as a result of advertising in sponsorware, you should let the advertiser know the name of the program which contained the advertisement. By doing this you will encourage further advertising, which will mean more free software for
you.
\par
\par This license may be reproduced and applied to your own programs, either in verbatim or modified form, provided that this preamble remains intact. If you modify the license, you
should add a line at the top stating your name, that you have modified the license, and the date of the modification.
\par
\par \pard \qr Troy Rollo
\par October 1995
\par \pard
\par \pard\plain \s253\sb120 \b\f4\lang2057 Conditions of the License
\par \pard\plain \f3\lang2057
\par \pard\plain \s5\fi-144\li144 \f3\lang2057
1. The documentation for this software and/or the software itself contains advertising material. This advertising material and any links to that advertising material must be included unmodified in any redistribution of this software at least until the dat
e stated at the start of the advertisement.
\par
\par 2. Some advertisements may conta
in the text "Non competition clause applies" at the start. If this is the case, you may not include advertising for a product which competes with the product advertised until the advertisement expires as detailed in part 1 of this license. If you are unsu
re if a product competes with a product in such an advertisement, you should contact the advertiser for their opinion.
\par
\par 3. You are free to redistribute verbatim copies of this software including all existing files and no additional files.
\par
\par 4. You are free to redistribute modified copies of this software provided that:
\par
\par \pard\plain \s4\fi-288\li576 \f3\lang2057 i) you include the full source code to the modified version of the software.
\par ii) you include, at the start of the documentation, a notice stating that you have modified the software, stating your name and the release date of the modified version.
\par iii) you release the entire modified package under the terms of this license without any modification to its terms.
\par
\par \pard\plain \s5\fi-144\li144 \f3\lang2057 \tab If you make significant enhancements you may also include additional advertising to help meet your costs, or remove any advertising which has expired.
\par
\par 5. You may not remove or modify any credits contained in this software or in its documentation.
\par
\par 6. As you have not signed this license, you are not obliged to accept it, however as nothing else gives you the right to redistribute and modify this software, doing so would be illegal. Consequently, your redistribution or modification of this software w
ill be construed as acceptance of this license.
\par
\par 7. Any person who violates this license loses the right to use, modify and redistribute this software and any software based on it, and may also be required to pay financial compensation to the authors of the software.
\par
\par 8. If you are unable to operate within the terms of this license, you are free to contact the authors to ask for their approval of modifications to it, provided the modifications do not go against the spirit of this license.
\par
\par 9. Because this program is supplied free of charge, it comes without any warranty, including the implied warranties of merchantability and fitness for a purpose. All risks related to the use of the software are assumed by you, the user.
\par
\par 10. Under no circumstances will anybody who contributes or redistributes this software be liable for any damages relating to your use, misuse or inability to use this software.
\par
\par \pard\plain \f3\lang2057 {\b \page }{\fs16\up6 #{\footnote \pard\plain \s245 \f3\fs20\lang2057 {\fs16\up6 #} Whatis}}{\b }{\b
\par }{\fs16\up6 ${\footnote \pard\plain \s245 \f3\fs20\lang2057 {\fs16\up6 $} What Is TwinSock?}}{\b }{\b
\par }\pard \qc {\b\fs32 What Is TwinSock}
\par \pard TwinSock is a free implementation of proxy sockets for Windows.
\par
\par Other Windows Sockets drivers use a network card, or a well known Internet over serial lines protocol, such as SLIP, C-SLIP or PPP. These drivers may access the network card or communications card directly, or via a VxD or DOS based TCP/IP stack. their us
es are limited to cases where either the machine is directly connected to a network, or the host at the other end of the phone line supports the same serial line internet protocol.
\par
\par The other shortcoming of these drivers is that they require an official IP address to operate, and frequently you will not be able to connect very far beyond the host you connect directly to.
\par
\par TwinSock, on the other hand, makes use of the IP address of the host to provide socket services to the client. When an application running under Windows requests socket services of TwinSock, TwinSock will transparently pass these requests on to the TwinSo
ck Host program running on the remote machine for processing. The result is that you have all the same networking capabilities as you would if your Windows machine were physically connected to the network in place of the host machine.
\par
\par TwinSock is able to operate in the most restrictive of circumstances - it can get through even the most fussy of terminal servers and 7 bit lines. With TwinSock, if you have a UNIX shell account, you can have full Windows Sockets access to the Internet.
\par
\par To take advantage of TwinSock, you will need to obtain some Windows Sockets applications. See the section {\uldb Applications Known To Work With TwinSock}{\v apps}
for a list of applications. Most of these are available from the popular internet FTP sites ftp.cica.indiana.edu and oak.oakland.edu.
\par
\par For more information on what TwinSock, refer to the{\uldb FAQ or newsgroups}{\v moreinfo}.
\par \page {\fs16\up6 #{\footnote \pard\plain \s245 \f3\fs20\lang2057 {\fs16\up6 #} moreinfo}} {\fs16\up6 ${\footnote \pard\plain \s245 \f3\fs20\lang2057 {\fs16\up6 $} For More Information}}
\par \pard \qc {\b\fs32 For More Information on TwinSock}
\par \pard
\par To find out the latest information on TwinSock, check the following newsgroups:
\par
\par \tab {\b alt.dcom.slip-emulators}{\b
\par }{\b \tab }{\b comp.os.ms-windows.networking.tcp-ip}{\b
\par }{\b \tab }{\b comp.os.ms-windows.apps.comm}{\b
\par }
\par or see the TwinSock Web Pages and FAQ at:
\par
\par \tab {\b http://www.corvu.com.au/twinsock/}{\b
\par }\pard \qj
\par If you still have a problem, you may be able to obtain assistance by sending mail to {\b [email protected]}. The availability of this service is subject to the availability of volunteers to field questions submitted to the list.
\par
\par Volunteers for the {\b twinsock-helpers} mailing list should send mail to {\b [email protected]}. {\b twinsock-helpers} will be acknowledged in the help files of future revisions of TwinSock, and in the TwinSock Web Pages
\par \pard \page {\fs16\up6 #{\footnote \pard\plain \s245 \f3\fs20\lang2057 {\fs16\up6 #} Installing}} {\fs16\up6 ${\footnote \pard\plain \s245 \f3\fs20\lang2057 {\fs16\up6 $} Installing TwinSock}}
\par \pard \qc {\b\fs32 Installing TwinSock}
\par \pard\plain \s5\fi-144\li144 \f3\lang2057 1. Create an icon for {\b\f5 TWINSOCK.EXE}{\f5\fs20 }(Windows 3.x) or {\b\f5 TWNSCK32.EXE }(Windows 95 and NT) in the program manager using File...New...Program Item.
\par \pard\plain \f3\lang2057
\par \pard\plain \s5\fi-144\li144 \f3\lang2057 2. Copy the file WINSOCK.DLL to the WINDOWS directory, and if you are using Windows 95 or NT, copy the file WSOCK32.DLL to the WINDOWS\\
SYSTEM directory. (Note: In previous versions you could safely omit this step. In version 2.0 you cannot - the DLLs must be installed to the correct location)
\par \pard\plain \f3\lang2057
\par \pard\plain \s5\fi-144\li144 \f3\lang2057 3. Copy the following files {\b\i and only} the following files to an empty directory on your UNIX host.
\par \pard\plain \f3\lang2057
\par {\b\f5 \tab }{\b\f5 \tab }{\b\f5 build.sh}{\b\f5
\par }{\b\f5 \tab }{\b\f5 \tab }{\b\f5 commands.c}{\b\f5
\par }{\b\f5 \tab }{\b\f5 \tab }{\b\f5 getentry.c}{\b\f5
\par }{\b\f5 \tab \tab }{\b\f5 getsock.c}{\b\f5
\par }{\b\f5 \tab }{\b\f5 \tab }{\b\f5 mem.c}{\b\f5
\par }{\b\f5 \tab }{\b\f5 \tab }{\b\f5 packet.c}{\b\f5
\par }{\b\f5 \tab }{\b\f5 \tab }{\b\f5 packet.h}{\b\f5
\par }{\b\f5 \tab }{\b\f5 \tab }{\b\f5 pterm.c}{\b\f5
\par }{\b\f5 \tab \tab }{\b\f5 sockinfo.c}{\b\f5
\par }{\b\f5 \tab \tab }{\b\f5 sockinfo.h}{\b\f5
\par }{\b\f5 \tab }{\b\f5 \tab }{\b\f5 term.c}{\b\f5
\par }{\b\f5 \tab }{\b\f5 \tab }{\b\f5 tshost.c}{\b\f5
\par }{\b\f5 \tab }{\b\f5 \tab }{\b\f5 twinsock.h}{\b\f5
\par }{\b\f5 \tab }{\b\f5 \tab }{\b\f5 tx.h}{\b\f5
\par }{\b\f5 \tab }{\b\f5 \tab }{\b\f5 wserror.h}{\b\f5
\par }{\b\f5\fs20
\par }\pard\plain \s5\fi-144\li144 \f3\lang2057 4. Type "{\b\f5 sh build.sh}
" to build the server. build.sh will attempt to figure out what options it needs to use to compile on most 32 bit systems. 64 bit systems such as Alpha OSF may need significant porting work.
\par
\par The compilation is successful if a file called "tshost" is created and you can successfully run it (type Control-X 5 times to exit tshost). The compilation process will often display warnings. These warnings can be ignored (t
hat's why they're called "warnings", not "errors").
\par \pard\plain \f3\lang2057
\par \pard\plain \s7\li144 \f3\lang2057 If it doesn't compile first off, try to modify it until it does if you know enough about programming. The files you will probably need to touch are (in decreasing order of probability):
\par \pard\plain \f3\lang2057
\par {\b\f5 \tab }{\b\f5 \tab }{\b\f5 term.c/pterm.c}{\b\f5
\par }{\b\f5 \tab }{\b\f5 \tab }{\b\f5 tshost.c}{\b\f5
\par }{\b\f5 \tab }{\b\f5 \tab }{\b\f5 commands.c}{\b\f5
\par }
\par \pard\plain \s7\li144 \f3\lang2057 You should avoid touching packet.c if possible.
\par
\par If you are not able to correct problems yourself, check the {\uldb newsgroups and the FAQ}{\v moreinfo}.
\par \pard\plain \f3\lang2057 \page {\fs16\up6 #{\footnote \pard\plain \s245 \f3\fs20\lang2057 {\fs16\up6 #} Starting}} {\fs16\up6 ${\footnote \pard\plain \s245 \f3\fs20\lang2057 {\fs16\up6 $} Starting TwinSock}}
\par \pard \qc {\b\fs32 Starting TwinSock}
\par \pard\plain \s5\fi-144\li144 \f3\lang2057 {\b 1.} Start the TwinSock client (The {\b\f5 TWINSOCK.EXE} or {\b\f5 TWNSCK32.EXE} program you have added to the program manager).
\par
\par \pard\plain \s7\li144 \f3\lang2057
If this is the first time you have started TwinSock, you may get a message indicating that COM1 could not be opened, followed by a box asking you to configure the communications port. If you do not, select Setup...Communications, and configure the communi
cations options to match your hardware.
\par
\par \pard\plain \s5\fi-144\li144 \f3\lang2057 {\b 2.} You will now be in TwinSock terminal mode. If you need to dial the modem, select Connect...Dial, otherwise, press enter to get the UNIX prompt, and log in as if you were using a terminal.
\par
\par {\b 3.} When you have a UNIX prompt. Start "{\b\f5 tshost}" without any arguments. TwinSock should iconise and change its title to "Twinsock - {\i hostname}", where {\i hostname}
is the name of your UNIX host. At this point you can start your Windows sockets applications.
\par
\par \pard\plain \s7\li144 \f3\lang2057 You can also {\uldb start tshost with arguments}{\v tshost} to get higher throughput.
\par \pard\plain \f3\lang2057 \page {\fs16\up6 #{\footnote \pard\plain \s245 \f3\fs20\lang2057 {\fs16\up6 #} tshost}} {\fs16\up6 ${\footnote \pard\plain \s245 \f3\fs20\lang2057 {\fs16\up6 $} Starting tshost}}
\par \pard \qc {\b\fs32 Starting tshost}{\b\fs32
\par }
\par \pard Starting tshost with no arguments results in TwinSock using a 6 bit rotation
protocol over the line. This means that TwinSock will work over just about any connection, but results in a 25% loss of speed. This situation can be improved by starting TwinSock in one of the following modes:
\par
\par \trowd \trgaph108\trleft-108 \cellx2660\cellx6854\cellx7857\pard \intbl {\b tshost command}{\b \cell }{\b Mode}{\b \cell }\pard \qr\intbl {\b Speed}{\b \cell }\pard \intbl \row \trowd \trgaph108\trleft-108 \cellx2660\cellx6854\cellx7857\pard \intbl
tshost -8\cell 8 Bit
\par \cell \pard \qr\intbl 133%\cell \pard \intbl \row \pard \intbl tshost -x\cell 8 Bit, ^S, ^Q escaped
\par \cell \pard \qr\intbl 132%\cell \pard \intbl \row \pard \intbl tshost -X\cell 8 Bit, ^S, ^Q escaped (both with and without bit 7)\cell \pard \qr\intbl 131%\cell \pard \intbl \row \pard \intbl tshost -n\cell 8 Bit, control characters escaped
\par \cell \pard \qr\intbl 118%\cell \pard \intbl \row \pard \intbl tshost -N\cell 7 Bit rotation (control characters with and without bit 7 avoided)
\par \cell \pard \qr\intbl 116%\cell \pard \intbl \row \trowd \trgaph108\trleft-108 \cellx2660\cellx6854\cellx7857\pard \intbl {\uldb tshost -e}{\v Explicit}\cell Explicit selection of escaped characters.
\par \cell \pard \qr\intbl Varies\cell \pard \intbl \row \pard The speed column indicates the speed relative to the default 6 bit rotation protocol. All these protocols require an 8 bit connection.
\par
\par The TwinSock client will automatically detect the protocol being used by TwinSock Host.
\par \page {\fs16\up6 #{\footnote \pard\plain \s245 \f3\fs20\lang2057 {\fs16\up6 #} apps}} {\fs16\up6 ${\footnote \pard\plain \s245 \f3\fs20\lang2057 {\fs16\up6 $} Applications Known To Work With TwinSock}}
\par {\b\fs32 Applications Known To Work With TwinSock}
\par The following applications have been tested by me and found to work with TwinSock 2.0:
\par
\par FTP
\par \tab WS_FTP
\par
\par IRC
\par \tab ircII 2.6 for Windows
\par \tab IRC4WIN
\par
\par Telnet
\par \tab yawtel
\par \tab Microsoft Telnet
\par \tab EWAN
\par
\par Mail
\par \tab Eudora
\par
\par News
\par \tab winvn
\par
\par World Wide Web
\par
\par \tab Netscape
\par \tab NCSA Mosaic
\par
\par X-Windows
\par \tab StarNet Micro-X (Also known as xwindemo)
\par
\par \page {\fs16\up6 #{\footnote \pard\plain \s245 \f3\fs20\lang2057 {\fs16\up6 #} Contributors}} {\fs16\up6 ${\footnote \pard\plain \s245 \f3\fs20\lang2057 {\fs16\up6 $} Contributors}}
\par \pard \qc {\b\fs32 Contributors}
\par \trowd \trgaph108\trleft-108 \cellx2129\cellx8887\pard \intbl Troy Rollo\cell Concept, design, implementation - you name it.\cell \pard \intbl \row \trowd \trgaph108\trleft-108 \cellx2129\cellx8887\pard \intbl Jim Reuter\cell
Fixed a number of byte-swapping bugs\cell \pard \intbl \row \pard \intbl Frank Prindle\cell POSIX Terminals Code.\cell \pard \intbl \row \pard \intbl {\ul Tim Henrion}{\v thenrion}\cell Fixed lots of bugs.\cell \pard \intbl \row \pard \intbl
Douglas Wegscheid\cell Got it to work with 386BSD\cell \pard \intbl \row \pard \intbl Kenny Luk\cell Maintained the FAQ for versions 1.2 and 1.3.\cell \pard \intbl \row \pard \intbl Danny Levinson\cell Added the scripting capability to version 2.0\cell
\pard \intbl \row \trowd \trgaph108\trleft-108 \cellx2129\cellx8887\pard \intbl {\plain \lang2057 Samson }{\plain \lang2057 Chan}\cell twinsock-helpers list since 16 September 1995\cell \pard \intbl \row \pard
\par Thanks also go to everybody who has added their code, bug fixes and suggestions for TwinSock.
\par \page {\fs16\up6 #{\footnote \pard\plain \s245 \f3\fs20\lang2057 {\fs16\up6 #} Problems}} {\fs16\up6 ${\footnote \pard\plain \s245 \f3\fs20\lang2057 {\fs16\up6 $} If you have problems}}
\par \pard \qc {\b\fs32 If You Have Problems}{\fs32
\par }\pard If your machine reboots while running the 16 bit version of TwinSock, and you are
running Windows 3.1, try adding the line "UseNotify=0" to the Config section of TWINSOCK.INI. This appears to fix the problem in all environments by stopping TwinSock from using the EnableCommNotify function.
\par
\par Some environments have a problem with the POSIX terminals code in {\b\f5 pterm.c} - you may get better results if you edit the Makefile, change {\b\f5 pterm.c} to {\b\f5 term.c} and run "make" again.
\par
\par If you cannot get TwinSock to work, check the {\uldb newsgroups and FAQ}{\v moreinfo} for more up to date information.
\par \pard \qc \page {\fs16\up6 #{\footnote \pard\plain \s245 \f3\fs20\lang2057 {\fs16\up6 #} shutdown}} {\fs16\up6 ${\footnote \pard\plain \s245 \f3\fs20\lang2057 {\fs16\up6 $} Shutting Down TwinSock}} {\b\fs32 Shutting down TwinSock}
\par \pard\plain \s5\fi-144\li144 \f3\lang2057 1. Double click on the TwinSock icon.
\par
\par 2. Select Setup...Disconnect from the menu.
\par
\par 3. If TwinSock host does not shut down, wait 5 seconds, then type ^X five times.
\par \pard\plain \f3\lang2057 \page {\fs16\up6 #{\footnote \pard\plain \s245 \f3\fs20\lang2057 {\fs16\up6 #} Reports}} {\fs16\up6 ${\footnote \pard\plain \s245 \f3\fs20\lang2057 {\fs16\up6 $} Enhancements and Bug Reports}}
\par \pard \qc {\b\fs32 Enhancements and Bug Reports}
\par \pard
\par Before submitting an enhancement request or bug report, check the {\uldb FAQ}{\v moreinfo} to make sure you are submitting something new.
\par
\par Enhancements and bug reports should be directed to:
\par
\par \tab \tab [email protected]
\par \page {\fs16\up6 #{\footnote \pard\plain \s245 \f3\fs20\lang2057 {\fs16\up6 #} TODO}} {\fs16\up6 ${\footnote \pard\plain \s245 \f3\fs20\lang2057 {\fs16\up6 $} TODO and Bugs}}
\par \pard \qc {\b\fs32 TODO & Bugs}{\b\fs32
\par }\pard
\par Out Of Band data should be handled properly.
\par
\par The internals don't clean up properly if an application exits without cleaning up itself.
\par
\par TwinSock Host should be ported to more hosts, including non UNIX hosts.
\par
\par \page {\fs16\up6 #{\footnote \pard\plain \s245 \f3\fs20\lang2057 {\fs16\up6 #} Explicit}} {\fs16\up6 ${\footnote \pard\plain \s245 \f3\fs20\lang2057 {\fs16\up6 $} Using the Explicit Encoding Protocol}}
\par \pard \qc {\b\fs32 Using the Explicit Encoding Protocol}
\par \pard Note that due to the complexity of using an explicit encoding protocol, questions to the TwinSock mailing aliases about it are unlikely to be answered - If you use this, you are on your own.
\par
\par \pard \qj In TWINSOCK.INI, and in the UNIX file "$HOME/.twinsock", create a section called "Protocol". This section can have three entries.
\par
\par \pard\plain \s255\li720 \f3\lang2057 {\b\f5 [Protocol]}{\b\f5
\par }{\b\f5 Escaped=}{\b\f5 \\}{\b\f5 236 ^S ^Q ^S! ^Q!}{\b\f5
\par }{\b\f5 Ignored=}{\b\f5 \\}{\b\f5 000}{\b\f5
\par }{\b\f5 Offset=64}{\b\f5
\par }\pard\plain \qj \f3\lang2057
\par The "Escaped Entry" specifies characters which should be escaped over the line, and the "Ignored" entry specifies characters which should be ignored completely when received. Both of these entries have the same format - a list of characters separated by s
paces. Characters can be represented in the following ways:
\par
\par \trowd \trgaph108\trleft1144 \cellx1991\cellx6432\pard \qj\intbl \\nnn\cell An octal number representing the character
\par \cell \pard \intbl \row \trowd \trgaph108\trleft1144 \cellx1991\cellx6432\pard \qj\intbl ^X\cell The control character, ^X
\par \cell \pard \intbl \row \trowd \trgaph108\trleft1144 \cellx1991\cellx6432\pard \qj\intbl ^X!\cell The control chararacter, ^X, with bit 7 set.
\par \cell \pard \intbl \row \pard \qj
\par The "Offset" entry specifies the value
which is added to a character to give its escaped representation. The default is 64. This must be chosen such that none of the characters you escape will have an escaped representation of either '^X' (ASCII code CAN) or the space character.
\par
\par Note that the host and client sides do not have to be identical - you can escape a character in one direction only if you wish.
\par \pard \page {\fs16\up6 #{\footnote \pard\plain \s245 \f3\fs20\lang2057 {\fs16\up6 #} Remapping}} {\fs16\up6 ${\footnote \pard\plain \s245 \f3\fs20\lang2057 {\fs16\up6 $} Using Port Remapping}}
\par \pard \qc {\b\fs32 Using Port Remapping}
\par \pard
\par \pard \qj
Port remapping allows you to have TwinSock host automatically remap a port your applications request to another port, or the first available port in a range of ports. This only applies to "server" applications, such as X-Windows servers and FTP servers.
\par
\par To do this, you add entries to "$HOME/.twinsock" on your UNIX host.
\par
\par \pard\plain \s255\li720 \f3\lang2057 {\b\f5 [Mappings]}{\b\f5
\par }{\b\f5 6000=6000,6010}{\b\f5
\par }{\b\f5 }{\b\f5
\par }{\b\f5 [PortNames]}{\b\f5
\par }{\b\f5 6000=X Windows Display 0}{\b\f5
\par }{\b\f5 6001=X Windows Display 1}{\b\f5
\par }{\b\f5 6002=X Windows Display 2}{\b\f5
\par }{\b\f5 6003=X Windows Display 3}{\b\f5
\par }{\b\f5 6004=X Windows Display 4}{\b\f5
\par }{\b\f5 6005=X Win}{\b\f5 dows Display 5}{\b\f5
\par }{\b\f5 6006=X Windows Display 6}{\b\f5
\par }{\b\f5 6007=X Windows Display 7}{\b\f5
\par }{\b\f5 6008=X Windows Display 8}{\b\f5
\par }{\b\f5 6009=X Windows Display 9}{\b\f5
\par }\pard\plain \qj \f3\lang2057
\par The "Mappings section" lists the port to be remapped on the left hand side, and a comma separated range of ports to remap to on the right hand side. In the example above, X Windows display 0 (":0.0" in X speak) could be mapped to any of displays 0 through
to 9 (":0.0" to ":9.0" in X speak).
\par
\par When the host end remaps a display, it sends a message back to the TwinSock Window saying what has been done, so if you know you have remapped something, you should check the TwinSock window after starting the app to see where it was mapped to.
\par
\par The "PortNames" section specifies a friendly name to be used for a port in notification messages. If no entry exists for a port in "PortNames", the port number will be used in the notification message.
\par
\par In the example above, you may get:
\par
\par \tab {\b\f5 X Windows Display 0 remapped to X Windows Display 3}
\par
\par \pard \qc \page {\fs16\up6 #{\footnote \pard\plain \s245 \f3\fs20\lang2057 {\fs16\up6 #} Resolver}} {\fs16\up6 ${\footnote \pard\plain \s245 \f3\fs20\lang2057 {\fs16\up6 $} Setting Up Name Servers}} {\b\fs32 Setting Up Name Servers}
\par \pard
\par \pard \qj
Normally TwinSock 2.0 will use the same name servers as your host system, however in some environments, notably Suns where NIS may be used rather than accessing name servers directly, TwinSock may be unable to find any name servers. The symptoms of this w
ill be that TwinSock will be unable to resolve any names. If you do not have this problem, then you should not set up name servers in TwinSock. If you do have this problem, you should follow the steps below:
\par
\par \pard\plain \s5\qj\fi-144\li144 \f3\lang2057 1. Before starting tshost, select Setup...Name Servers... from the menu. This will display the name server configuration box.
\par
\par 2. Place your domain name in the first edit box. The domain name is your fully qualified internet host name without the first part of the name. For example, if your host name is {\b\f5 myhost.some_domain.edu.us}, your domain name is {\b\f5
some_domain.edu.us}{\plain \lang2057 .}{\plain \lang2057
\par }{\plain \lang2057
\par }{\plain \lang2057 3. Place the internet addresses of up to three name servers in the boxes provided. You may need to ask your service provider for the addresses of the name}{\plain \lang2057 servers.}{\plain \lang2057
\par }{\plain \lang2057
\par }{\plain \lang2057 4. Check the "Override Values Supplied By Host" box.}{\plain \lang2057
\par }{\plain \lang2057
\par }{\plain \lang2057 5. Click the OK button.}{\plain \lang2057
\par }\pard\plain \qc \f3\lang2057 \page {\fs16\up6 #{\footnote \pard\plain \s245 \f3\fs20\lang2057 {\fs16\up6 #} Scripting}} {\fs16\up6 ${\footnote \pard\plain \s245 \f3\fs20\lang2057 {\fs16\up6 $} Scripting}} {\b\fs32 Using Scripting}{\b
\par }\pard
\par TwinSock 2.0 includes a scripting facility which you can use to automate your login session. You can attach script to menu items and to function keys.
\par
\par For a formal definition of the format of the script file and how to use it, see the file script.txt in the TwinSock directory.
\par \page {\fs16\up6 #{\footnote \pard\plain \s245 \f3\fs20\lang2057 {\fs16\up6 #} History}} {\fs16\up6 ${\footnote \pard\plain \s245 \f3\fs20\lang2057 {\fs16\up6 $} Revision History}}
\par \pard \qc {\b\fs32 Revision History}
\par \pard
\par \tab 05-Nov-1994\tab Project initiated
\par \tab 14-Nov-1994\tab Version 1.0 released
\par \tab 20-Nov-1994\tab {\uldb Version 1.1}{\v Changes11} released
\par \tab 04-Dec-1994\tab {\uldb Version 1.2}{\v Changes12} released
\par \tab 23-Jan-1995\tab Version 1.3 beta
\par \tab 04-Feb-1995\tab {\uldb Version 1.3}{\v Changes13} released
\par \tab 25-Mar-1995\tab Version 1.4 beta
\par \tab 30-Mar-1995\tab {\uldb Version 1.4}{\v Changes14} released
\par \tab 12-Nov-1995\tab {\uldb Version 2.0}{\v Changes20} released
\par \page {\fs16\up6 #{\footnote \pard\plain \s245 \f3\fs20\lang2057 {\fs16\up6 #} Changes11}} {\fs16\up6 ${\footnote \pard\plain \s245 \f3\fs20\lang2057 {\fs16\up6 $} Changes in version 1.1}}
\par \pard \qc {\b\fs32 Changes in version 1.1}
\par \pard This version includes a number of bug fixes and usability enhancements.
\par
\par Bugs fixed from 1.0:
\par
\par \pard\plain \s8\li576 \f3\lang2057 Most of the WSAGetXbyY functions didn't work at all.
\par
\par Telnet applications won't drop typed characters anymore.
\par \pard\plain \f3\lang2057
\par New features:
\par
\par \pard\plain \s8\li576 \f3\lang2057 The host end now tries to figure out what it needs to do to compile on your system. This ability is probably not complete yet, but should work for most 32 bit UNIX platforms.
\par
\par Now has a terminal interface. This means you can log in to your host and start TwinSock Host without needing a separate terminal program.
\par
\par Data received from the network is now "streamed" this means that if you are in the middle of a long file transfer, you can still get in to do other things while the transfer is still going. Also, when you abort a connection, the unwanted data is discarded
at the host end.
\par
\par TwinSock Host now sends a character sequence to TwinSock, which then automatically initiates the connection automatically.
\par \pard\plain \f3\lang2057 \page {\fs16\up6 #{\footnote \pard\plain \s245 \f3\fs20\lang2057 {\fs16\up6 #} Changes12}} {\fs16\up6 ${\footnote \pard\plain \s245 \f3\fs20\lang2057 {\fs16\up6 $} Changes in Version 1.2}}
\par \pard \qc {\b\fs32 Changes in version 1.2}
\par \pard
\par Bugs fixed from 1.1:
\par \pard\plain \s8\li576 \f3\lang2057 A number of bugs to do with byte swapping have been fixed. Thanks go to Jim Reuter of DEC for his detective work on this.
\par
\par The setsockopt calls have been changed to have the last argument not passed by address. This was my error, not a SysV/POSIX/BSD difference as many have speculated.
\par \pard\plain \f3\lang2057
\par Behaviour changes:
\par \pard\plain \s8\li576 \f3\lang2057 The default line settings have changed. TwinSock now uses DSR for handshaking. This can be changed back to the old behaviour by adding the line "OutxDsrFlow=0" to the config section of TWINSOCK.INI
\par
\par build.sh should now detect "-lnsl" and shouldn't incorrectly include mem.o in the compilation when using gcc (which has built-in prototypes).
\par
\par \pard\plain \f3\lang2057 New features:
\par \pard\plain \s8\li576 \f3\lang2057 The one packet positive Ack protocol has been changed to a four packet windowed protocol. This improves speed by a factor of four (no, making it an 8 packet windowed protocol will not give an 8 times improvement).
\par
\par You can now dial the modem from the menu, if you're averse to entering dial commands yourself. The dialing code will remember your most recently dialled
number, so for most people this means dialing will be a simple matter of selecting Setup...Dial...OK (after the first time).
\par
\par \pard\plain \f3\lang2057 There is now a menu option to send a break signal (Setup...Send Break Signal). The break signal will last for 1.5 seconds.\page {\fs16\up6 #{\footnote \pard\plain \s245 \f3\fs20\lang2057 {\fs16\up6 #} Changes13}} {\fs16\up6 $
{\footnote \pard\plain \s245 \f3\fs20\lang2057 {\fs16\up6 $} Changes in Version 1.3}}
\par \pard \qc {\b\fs32 Changes in version 1.3}
\par \pard
\par Bugs fixed from 1.2:
\par
\par \pard\plain \s8\li576 \f3\lang2057 Many bugs affecting overall reliability were fixed. They usually manifested themselves by one of the following:
\par \pard\plain \f3\lang2057
\par \pard\plain \s9\li1152 \f3\lang2057 "Call to Undefined Dynalink" message.
\par General Protection Faults.
\par The protocol hanging.
\par \pard\plain \f3\lang2057
\par \pard\plain \s8\li576 \f3\lang2057 The dial function should now work on all modems.
\par \pard\plain \f3\lang2057
\par New features:
\par
\par \pard\plain \s8\li576 \f3\lang2057 There is now an 8 bit protocol, which should result in performance equivalent to SLIP.
\par
\par tshost should now compile (and work) on many more platforms (most notably, POSIX platforms, thanks to Frank Prindle)
\par
\par A new option is available on the menu to view a summary of protocol statistics. These statistics relate to the TwinSock protocol used over the line.
\par \pard\plain \f3\lang2057 \page {\fs16\up6 #{\footnote \pard\plain \s245 \f3\fs20\lang2057 {\fs16\up6 #} Changes14}} {\fs16\up6 ${\footnote \pard\plain \s245 \f3\fs20\lang2057 {\fs16\up6 $} Changes in Version 1.4}}
\par \pard \qc {\b\fs32 Changes in Version 1.4}
\par \pard Bugs fixed from 1.3
\par \pard\plain \s255\qj\li720 \f3\lang2057 build.sh should now detect OSF and not user POSIX terminals on it, and should detect SCO and not use select.h on that.
\par \pard \s255\li720
\par \pard \s255\qj\li720 Absence of SO_ACCEPTCONN and SO_USELOOPBACK should not cause problems on Linux anymore.
\par
\par 386BSD should work - it has a strange-looking sockaddr_in.
\par
\par Speeds >19200 should now work and save OK in TWINSOCK.INI.
\par
\par the "Dial" function now only sends one write to the comm port, for those really fiddly configurations.
\par
\par The -8 protocol should now work with environments using POSIX terminals.
\par
\par A bug in Windows which causes communications notification messages not to be delivered should no longer affect TwinSock.
\par
\par More applications should work, including EWAN and CU-SeeMe.
\par
\par Applications which use UDP should now work.
\par
\par WS_FTP will now report realistic transfer rates for uploads.
\par
\par Eudora mail attachments will no longer cause the message to fail.
\par
\par There were still some byte-swap errors in one or two places - these are now fixed.
\par
\par Many changes have been made to errors returned by TwinSock to get it to pass more of WSAtest.
\par
\par Sending data will no longer slow down the received data rate by 50%.
\par
\par \pard\plain \f3\lang2057 New Features
\par \pard\plain \s255\qj\li720 \f3\lang2057
\par Port remapping is now supported, so if you are using something like X-Windows and display 0 is taken, it can be remapped to display 1, 2 and so on.
\par
\par A ".twinsock" file on the host side, which has a format similar to a Windows INI file, stores parameters for the host end.
\par
\par Three new protocols: -X, which escapes XON and XOFF with and without bit 7 set, -N which avoids control characters with and without bit 7 set, and -e, which allows you to specify exactly which characters should be escaped.
\par
\par \pard\plain \qc \f3\lang2057 \page {\fs16\up6 #{\footnote \pard\plain \s245 \f3\fs20\lang2057 {\fs16\up6 #} Changes20}} {\fs16\up6 ${\footnote \pard\plain \s245 \f3\fs20\lang2057 {\fs16\up6 $} Changes in Version 2.0}} {\b\fs32 Major Changes in Version 2.0
}
\par \pard Substantial parts of TwinSock have been rewritten for version 2.0. This section is a summary of the major points.
\par
\par One sentence summary: TwinSock 2.0 should increase compatibility with applications to near 100%, adds some features and adds support for 32 bit applications under Windows 95 and Windows NT.
\par
\par Bugs fixed
\par \pard\plain \s255\li720 \f3\lang2057 Netscape should no longer produce "reentrant call to interrupt window" messages.
\par
\par The mysterious reboot problem has been solved.
\par
\par \pard\plain \f3\lang2057 New and improved features
\par \pard\plain \s255\li720 \f3\lang2057 The protocol used by TwinSock has been changed so that the client does more work and the server does less. This ena
bles TwinSock to have fewer deviations in behaviour from regular TCP/IP stacks, with the major difference being that TwinSock will only block "unexpectedly" on bind calls. The major difference to users is that data can continue to flow constantly without
being interrupted for certain types of operations.
\par
\par TwinSock now works with both 16 and 32 bit applications, in either 16 or 32 bit Windows.
\par
\par A scripting language has been added (Thanks to Danny Levinson).
\par
\par The communications setup box now offers the choice of configuring hardware hardware handshaking for a modem (RTS/CTS), for weird terminal lines (DSR/DTR) or not at all.
\par \pard\plain \f3\lang2057
\par \pard \qj \page {\fs16\up6 #{\footnote \pard\plain \s245 \f3\fs20\lang2057 {\fs16\up6 #} thenrion}}[email protected] (Tim Henrion)
\par
\par }