-
Notifications
You must be signed in to change notification settings - Fork 8
/
ChangeLog
1799 lines (1328 loc) · 61.4 KB
/
ChangeLog
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
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
Fri Mar 22 13:48:30 1996 Matti Aarnio <[email protected]>
* libsendcmd.c, unix.c:
Even more relaxed approach on parametrizing
the CMDMAILBOX -- now allows SOCK/FIFO/UDP
with fairly flexible (in regards of spaces)
syntax..
Mon Nov 13 17:48:52 1995 Matti Aarnio <[email protected]>
* libsendcmd.c, unix.c:
A bit more relaxed approach on parametrizing
CMDMAILBOX config parameter (FIFO/SOCKET case)
* file_queue.c:
Do RSCS-accounting on locally sent files, that
wind up to local recipients
* unix_brcst.c:
Re-enter the SysVR4 UTMP weirdos.. Now fixed ?
Fri Aug 25 09:02:55 1995 Matti Aarnio <[email protected]>
* mailify.c:
Handling error-messages (where "MAIL FROM:" address
is "<>", that is, empty) was done improperly. Now
it does flag input as from "channel error" in that
case.
Mon Jul 24 14:29:59 1995 Matti Aarnio <[email protected]>
* bmail.c, sendfile.c:
Sometimes mktemp() fails when there are a LOT of
files being sent at the same time. Changed now to
more classical ".MaiL.%05d"-format with getpid()
result as integer data..
Wed Jun 21 22:42:39 1995 Matti Aarnio <[email protected]>
* unix_brcst.c, nmr_unix.c:
Ok, more than __linux__ is needed to know which
machines have <utmp.h> containing extended flags.
Now we test "DEAD_PROCESS" pre-processor define,
which existence (propably) will correlate with
the existence of utmp's field ut_type.
(SysVr4 feature, I think.)
Mon Jun 19 15:17:55 1995 Matti Aarnio <[email protected]>
* send.c, sendfile.c, bmail.c:
Some additional tests to trap various forms of bad
addresses -- accepts only user@node format with
no '.' in the address, nor either component longer
than 8 chars.
* nmr.c:
Made sure not to overwrite allocated string spaces on
Msg-queue entry. (Did cause a crash with it..)
Tue Jun 13 09:13:18 1995 Matti Aarnio <[email protected]>
* qrdr.c:
Collect directory browsing results to an array at first,
then qsort() it with the time-stamp, and finally display
them in order. (Latest last)
(This is something what Gerald Hanush asked for.)
Mon Jun 12 22:44:00 1995 Matti Aarnio <[email protected]>
* file_queue.c:
Apparently OSF/1 pipe() return value is the first
fd, not "0", when it succeeds. Nice thing - and not..
Altered the test to see if it returns a value under
zero, or something positive. When the return is
positive (zero, or larger), fork() and run in
child-mode.
If a child_pipe exists already ( >= 0 ), close
it and mark the new one for processing.
* libreadcfg.c, read_config, libsendcmd.c, unix.c:
Rewrote things so that now the used CMDMAILBOX
transport method is chosen at runtime:
CMDMAILBOX F /path/to/.cmdfifo
CMDMAILBOX f /path/to/.cmdfifo
CMDMAILBOX S /path/to/.cmdsocket
CMDMAILBOX U 127.0.0.2 175 # UDP port
The "f" is FIFO which is closed, and reopened
every time one command is pulled in.
Sun Jun 11 03:12:06 1995 Matti Aarnio <[email protected]>
* namesparser.c:
Noticed that the data parsing stopped at first ":",
which caused premature breaks; observe following entry
from BITEARN.NODES -file:
:remark1.BASE(9501) 00/00/00 00:00:00
* libreadcfg.c, read_config.c, libsendcmd.c, unix.c:
Amended "CMDMAILBOX"-data to contain port-number in
case UDP-format is used. (That is, have two tokens.)
Default value for the port-number is 175.
* unix_tcp.c read_passive_tcp_connection():
Noticed that a case when a socket exists, and a new
connection is attempted is handled improperly. The
old socket-fd was FORGOTTEN! Now it NAKs the connection
attempt with a complaint that there already is a connection
in there...
Things will progress from such a situation usually by
detecting a closure on the existing stream, but better
not to rush ahead of things.
* bmail.c:
Accept "-u" only when calling the program from uids 0 or 1
(root and daemon in most common cases -- for BSD-sendmail
which wants bmail executable with protection 2111 (user X,
group NJEGRP) )
Sat Jun 10 05:18:27 1995 Matti Aarnio <[email protected]>
* Makefile, consts.h, prototypes.h, recv_file.c, io.c,
send_file.c, unix.c, protocol.c, unix_tcp.c:
- Found one uninitialized pointer, which apparently
caused mystic data-structure corruptions (on timer
subsystem)
- Made mandatory (well, with disabling options) to
use NBSTREAM, USE_XMIT_QUEUE, and USE_SOCKOPT.
(in consts.h, see also Makefile's comments!)
- Use F_WAIT_V_A_BIT to flag if there is any reason
for NOT to send out data at the moment, and instead
quit from within handle_ack()..
The F_WAIT_V_A_BIT is set when new data is sent to
outbound buffer (primary one, or XMIT QUEUE).
The bit is cleared when pending writer finishes
with success status. When the pending-writer is
called from poll_sockets(), immediately after it
the dequeue_xmit_queue() is called, and if there
is something, it can cause F_WAIT_V_A_BIT to be
set again..)
- If the XMIT_QUEUE ever runs out of space, it abort()s!
- Tested the beast by sending 80 or so smallish files both
ways over the link. Such setup caused previously link
corruption.. Actually the critical phase is when there
are flowing NJE headers/trailer, bare data sending works
just fine, but when a file ends, EOF block needs an ack
to be sent, and unless there the care is used, all
queues will overflow..
Thu Jun 8 15:48:14 1995 Matti Aarnio <[email protected]>
* namesfilter.c:
New option: "-netsoft" to list node software fields.
* funetnje.texinfo:
Some additional chapters
* unix_tcp.c:
FINALLY realized why sometimes file sending from
queue does not start on some lines. Reason was
that PASSIVE VMNET open didn't clear all multi-
stream bookkeeping bits -> all lines were "in use",
when line started often enough in passive mode :-(
(That is, on PASSIVE start, if previous shutdown
had happened with all streams sending something..)
* protocol.c, consts.h, unix.c, unix_tcp.c, io.c:
Serious Hacking -- NBSTREAM does not work without
USE_XMIT_QUEUE - had to implement it properly.
* unix_brdcst.c, nmr_unix.c:
Linux feature(s) of UTMP usage caused some surprises,
now created necessary "#ifdef __linux__" "fix".
Tue Jun 6 12:28:31 1995 Matti Aarnio <[email protected]>
* unix_tcp.c, protocol.c:
Couple more NBSTREAM tests so that we won't run over ourselves
when transmiting on a stream.
* file_queue.c, io.c:
Revised slightly the queue handling - when restarting a link,
ALWAYS tear apart the current state.
("debug rescan" must not destroy the current queue state,
however genuine link restart can do it - while requeueing.)
* nmr.c, io.c, consts.h:
Requeue NMR-messages ("struct MESSAGE" changed a bit)
when a link restarts.
Wed May 24 13:19:13 1995 Matti Aarnio <[email protected]>
* unix.c, unix_tcp.c, protocol.c, prototypes.h:
Still more revisions into NBSTREAM processing code,
also tried to improve sending speed, which now clocks
to 50kB/s or better.. ( Previously 30kB/s was tops
with 0.25 sec timeout on select(), now select timeout
is changed to 1.0 sec :-) )
Thu May 18 02:51:44 1995 Matti Aarnio <[email protected]>
* sendfile.c:
Revised target-address processing..
* nmr.c, send.c:
Consider only codes below ASCII ' ' (SPACE) to be bad on message
transmission. -- Lets 8-bit ISO-Latin chars go thru as is...
* ebcdic.h, ebcdicinv.c:
Made a 1:1 mapping in between ASCII and EBCDIC in true
JNET fashion (likely exactly same table as they have..)
Mon Apr 24 08:48:51 1995 Matti Aarnio <[email protected]>
* sendfile.c:
A bit stricter processing of target address - to ensure that
it follows the 8+8 limits of NJE..
* transfer.c:
Check that the file-path given to us is absolute -- that is,
it starts with "/".
* consts.h, io.c vmnet_monitor():
"VMNET MONITOR" probe interval changed to 60 seconds,
and full timeout to 4*60 seconds.
Now ONE slow-responding case (like temporary connectivity
breakdown) won't break the link.
Fri Apr 21 11:23:23 1995 Matti Aarnio <[email protected]>
* unix.c, util.c:
A bit more processing when the emulator gets SIGHUP:
- close (and open) route table
- close (and open) RSCS accounting file
- close (open is implicitic) Spoolid cache
- re-read File-Exits
- re-read Msg-Exits
- close (and open) logfile.
* consts.h, unix_tcp.c, unix.c:
Under some unclear conditions the InBuffer and/or XmitBuffer
appeared to be overfull -> data following it becomes over-
written causing all kinds of havock... Re-arranged buffers
so that such overwrite corrupts (at first) dataset-headers,
and only then goes out to next buffer in chain..
There used to be important length counters following
those buffers...
* unix_tcp.c, io.c, unix.c:
Still more fixes to NBSTREAM -- under some conditions
the WritePending was left set, and clearing it
at link activation was not taken care off..
( NBSTREAM implies (fully) NBCONNECT, on one case the
NBCONNECT wasn't happening -> active connect failed.. )
Odd startup problems turned out to be non-resets of
InBCB and OutBCB variables when the link starts.
(Reset to zero at link init is a protocol requirement!)
Thu Apr 20 12:47:07 1995 Matti Aarnio <[email protected]>
* zmailer-configs/, smail-configs/, sendmail-configs/:
New subdirectories with SOME support files
for each mailer.
* bintree.c:
Changed ``bintree-db''-file header structure (radically)
Now it contains couple signature-like objects, which
are used to see if the file is correct for the machine
where it is run.
* util.c:
Decided that having spoolid-cache in machine-independent
format is not 1) easy, 2) necessary.
Wed Apr 19 22:11:35 1995 Matti Aarnio <[email protected]>
* file_queue.c, io.c:
Looked over the Line->QueuedFiles & Line->QueuedFilesWaiting
variables usages.
* io.c vmnet_monitor(), unix.c, prototypes.h, consts.h:
NBSTREAM requires active monitor. Implemented by
sending NMR-cmd "CPQ TIME" to each ACTIVE link-peer.
If the link does not return anything (`Line->InAge'
timestamp is updated at each socket read) within TWO
T_VMNET_INTERVALs, link is determined dead, and
``restart_channel(i)'' is called.
Query is sent from VMNET@HOSTNAME userid, and therefore
msg-exit.cf MUST be configured to process it... Well,
reply is MSG from system, and thus undeliverability will
not cause msg-ping-pong, but purity is a nice goal.
* unix_tcp.c, unix.c, protocol.c, Makefile:
NBSTREAM -- FINALLY done right!
Tue Apr 18 08:18:30 1995 Matti Aarnio <[email protected]>
* unix_tcp.c:
Nth attempt to get the ENQUIRE correct - now finally, it
is no SYN+NAK, nor SYN+ENQ; it is SOH+ENQ...
* util.c:
`spoolid'-db routines needed machine-byte-order INDEPENDENT format
(The RARE case of moving server from one host to another bite me..)
* protocol.c restart_channel():
Removed init_link_state() -call, which was VERY harmfull,
though its effects were very indirect indeed...
Added several tests of: ``Line->state != ACTIVE''
into the main NJE-protocol switch-statement.
( When the block-write fails, it is correct to quit, and not
to try to send (again) to a closed socket.. -> SIGSEGV )
* __fopen.c:
Changed the "__"-prefix of __fopen() et.al. to be "_nje_",
because apparently the OSF/1 does have __fdopen() in its
libraries..
* sendfile.c:
Processing of "-asa" -printouts decremented "maxlen"
at wrong place -- when the file was longer than 136
lines, the system started to collapse..
Thu Apr 13 11:40:59 1995 Matti Aarnio <[email protected]>
* namesfilter.c, netinit.sh:
With some reading of NEWTAGS DESCRIPT (available from your
nearest NETSERV), determined the CORRECT way to pick mailer
entries, and rewrote the "netinit.sh" to automate (in smarter
way) the BITNET related databases. (Thanks to Eric Thomas.)
Wed Apr 12 09:00:02 1995 Matti Aarnio <[email protected]> ( & Paul E Bryant )
* send_file.c:
When creating a NetworkJobHeader, the NDHGXEQ[UN] -fields
get SENDERs value for SYSOUTs, but DESTINATION for SYSINs!
With help of Eric Thomas discovered that NDHVDIST was
produced with garbage contents (his LMAIL mailer is picky,
when it comes to NJE data...). Reason: upperstr() on
a buffer containing (at that point) EBCDIC data :-(
Fri Mar 24 15:02:45 1995 Matti Aarnio <[email protected]>
* unix_files.c, unix.c, io.c, file_queue.c, consts.h:
Added "ToAddr" into the queue-entry information thus
making it unnecessary to re-scan spool files when
some event causes full queue re-scan.. -- like
state-change of a link..
Fri Mar 24 11:22:18 1995 Paul E Bryant <[email protected]>
* njeroutes.c main():
Copying arguments from argv[] to string buffers must
use strncpy(), NOT memcpy()!
* bmail.c:
Define a #define MAILERNAME which can be set on Makefile
to define some other "userid", which sends email. Default
is "MAILER".
Header-folding code for narrow (normal) BSMTP-PUNCH mode.
Thu Mar 23 15:20:12 1995 Matti Aarnio <[email protected]>
* logger.c, namesfilter.c, headers.h, consts.h, detach.c, util.c,
prototypes.h, unix.c, unix_brdcst.c, unix_tcp.c, liblstr.c, Makefile:
"Minor" porting job to get the thing to compile on OSF/1 v3.2.
(Completed in 30 minutes -- that's why I say "minor" :) )
The most important thing was to teach it not to assume that
"long" or "unsigned long" mean anything -- rather they do not
mean 32-bit integers on 64-bit alphas... Also teached it to
treat TIME specially -- time_t is for it.
Used "SunOS-4.1.3+GCC" compile switches to compile it on DEC AXP..
Tue Jan 10 16:32:15 1995 Matti Aarnio ([email protected])
* io.c:
When doing init_link_state(), do remember also
to close (possibly) open sockets so that a case of
write-failure on a link will not cause accumulation
of the connected sockets.
Fri Nov 25 15:44:14 1994 Matti Aarnio ([email protected])
* unix_files.c:
More care on chown(2) calls.
Now it should not chown to root the user's spool
directory, when SENDING a file.
Wed Oct 5 15:58:00 1994 Matti Aarnio ([email protected])
* mailify.c:
Finally integrated it with Zmailer and TESTED.
(Full functionality only for BSMTP, NETDATA, and
plain PUNCH file..)
* libreceive.c, nmr.c, unix_tcp.c, libndfuncs.c, bintree.c:
Various complaints from SunOS 4.x 'cc', the bundled
compiler..
Tue Sep 27 09:39:36 1994 Matti Aarnio ([email protected])
* namesparser.c, namesfilter.c: NEW
A filter utility for producing Zmailer's routes.bitnet
table -- and also Smail's..
* funetnje.texinfo:
Major editing, filled in about half of what was missing
(chaptervice), added chapters about support, and history..
Still some commands need documentation, and the internal
stuff is not even started...
* unix_tcp.c: read_passive_tcp_connection()
Report more info about WHO (host IP address) is trying
to contact us.
Wed Sep 21 17:53:59 1994 Gerald Hanusch ([email protected])
* io.c, protocol.c, recv_file.c:
"Be lenient on what you accept, strict on what you send"..
Accept always 7 streams, but send only N (1..7) depending
the system configuration.
[mea: Edited them to change literal '7' to 'MAX_STREAMS']
Mon Aug 8 10:02:29 1994 Gerald Hanusch ([email protected])
* gone_server.c: del_gone_user()
Fix the memory-freeup -- wrong memory block got freed..
Thu Jul 7 16:08:01 1994 Matti Aarnio ([email protected])
* nmr.c: handle_nmr()
Rewrote parameter parsing for NMR forwarding.
A locally linked (ROUTE NNNN TO `LOCALNAME`) host
failed NMR delivery, and caused a SIGBUS error..
(Weird, isn't it..)
Tue Mar 15 01:25:38 1994 "Matti E. Aarnio" ([email protected])
* unix_tcp.c, unix.c:
Added setsockopt(sock, SOL_SOCKET, SO_REUSEADDR, &on, sizeof(on))
into local socket creation. Might help on getting faster
restart..
* unix_tcp.c:
Finished the Solarisation -- found a way to do "FIONBIO"
in SysVr4 style..
* unix.c:
Cleaned up the code a bit by introducing local macroes
_FD_ZERO(), _FD_SET(), _FD_CLR(), _FD_ISSET() which act
depending upon actual variant used.
Fri Mar 11 19:50:40 1994 "Matti E. Aarnio" ([email protected])
* qrdr.c, sendfile.c, send.c, bmail.c, unix_tcp.c, main.c, unix.c,
libsendcmd.c, mailify.c, file_queue.c, detach.c, io.c, read_config.c,
acctcat.c, transfer.c, libhdrtbx.c, nmr_unix.c, unix_msgs.c,
unix_files.c, prototypes.h, recv_file.c, send_file.c, util.c,
libexpnhome.c, libndparse.c, sysexits.h:
Solarisation... AARGH...
BSD-compat -library readdir() returns boguous data, but
plain socket()'s don't have FIONBIO :-( Sample Makefile
definitions for Solaris are a result of LONG battle..
(Actually that was about wrong #include -- must be <sys/dir.h>,
not <dirent.h> ...)
Thu Mar 3 12:56:21 1994 Matti Aarnio ([email protected])
* sendfile.c:
Gerald found an odd behaviour of the system when
sendfile was invoked in an environment without
stdin... Fixed fixed by not closing implicitely
defined "stdin" file (handle 0) AFTER an explicite
fopen had gotten a REAL fd=0 file a moment before..
Wed Feb 23 10:26:08 1994 Matti Aarnio ([email protected])
* sendfile.c:
A couple of additional aliases: sf (sendfile), bitprt (print)
(By Gerald Hanusch)
* send.c:
*Prompts* text from the user only when it is used
from the keyboard. Usage from a pipe will not
put extra prompts on the stdout (in fact none.)
Tue Feb 22 12:58:50 1994 Matti Aarnio ([email protected])
* unix_files.c:
More details on various phases of SYSIN handling.
(And other directory assignment rules.)
Also having full usage of SYSIN/PUNCH/PRINT/* -column,
and providing capability to match it.
Mon Feb 21 10:49:06 1994 Matti Aarnio ([email protected])
* unix_files.c:
File delivery to non-pseudouser, non-realuser goes
to the POSTMAST for processing.
* bintree.c, bmail.c, unix_msgs.c, main.c, transfer.c:
A set of changes from Gerald Hanusch to quiet down
compiler warnings.
* send.c:
On "prompt mode" changed the instructions of
ending the session from "empty line" to "EOF".
Fri Feb 18 15:08:37 1994 Matti Aarnio ([email protected])
* bintree.c, bintree.h -- reincarnation of heaptree.[ch]:
The HeapTree didn't work - not at all.
(Well, it was a PRIORITY QUEUE, not an ordered search tree)
Actually this is a kludge, which isn't even a balanced binary
tree, but one can search it with binary search.
(insert & delete are more expensive, though)
* bmail.c:
Netdata "From:" became something mystic, and reception didn't
work at all. Changed things so that ND-from is same as
NJE-From.
Thu Feb 17 10:00:14 1994 Matti Aarnio ([email protected])
* transfer.c:
Option -t for transparent transfer, else the runner
of the transfer will appear as file originator..
* consts.h, man-pages, funetnje.texinfo
Changed config filename to be /etc/funetnje.cf
* unix_route.c, njeroute.c, io.c, ucp.c, consts.h, clientutils.h:
Altered route-database to use `heaptree'.
Our knowledge says this database is fairly small.
(3000 entries of 19 bytes each, total circa 56k on a SPARC..)
Added command 'UCP RESCAN ROUTE', which actually will
re-open the route database.
Wed Feb 16 16:16:37 1994 Matti Aarnio ([email protected])
* util.c parse_envelope():
Assign FID per 'FromUser', if it has value 0.
Assign OID per user '*NJE*', if it has value 0, AND there
is active flag `assign_oid'..
This will cause a more-VM/XA-like behaviour on spoolids.
Sender user's spoolids increment, when he sends a file,
and also when he receives a file. Sender can have same
spoolided file in the reception spool, as this facility
assigns, but reception will always arrive on `not-previ-
ously-existing' spoolid.
It is a matter-of-taste, if `OID:'s should be assigned
and written into the spool file at the time of delivery
into local spool. Now only the file-name indicates it.
* heaptree.c, heaptree.h:
New in-core database with backing-store on disk.
* unix_files.c, send_file.c, util.c, prototypes.h:
Use HeapTree-db to manage spoolids.
Mon Feb 14 12:53:58 1994 Gerald Hanusch ([email protected])
* sendfile.c, sendfile.1:
Added "-dist" -option.
Thu Feb 10 16:25:09 1994 Matti Aarnio ([email protected])
* njeroutes.c (old name: unix_build.c), Makefile
Renamed the program.
* prototypes.h:
Added some Convex Things into it.
Thu Feb 10 13:42:01 1994 Gerald Hanusch ([email protected])
* sendfile.c, recv_file.c, libreadcfg.c, bitsend.c, read_config.c:
Some small sanity-checks, and processing of configured
"DEFFORM".
Wed Feb 2 14:53:24 1994 Matti Aarnio ([email protected])
* io.c init_link_state():
After possible active streams have been requeued,
all others are also requeued.
* file_queue.c requeue_file_queue():
A version of delete_file_queue() which cleans the queue
and while doing it, requeues all files in it.
If it returns a value other than 0, it is used in wrong place!
Wed Feb 2 012:27:34 1994 Gerald Hanusch ([email protected])
* nmr.c send_nmr():
Removed old spurious NMRFMNOD reset to local (EBCDIC)
hostname.
Wed Feb 2 08:33:44 1994 Matti Aarnio ([email protected])
* nmr.c handle_local_command():
Added local hard-coded commands 'MSG node user text..', and
'CMD node text..' to allow sending MSGs/CMDs "behind the corner"
* unix_msgs.c, prototypes.h:
Allow incoming NMR text content to be modified.
Needed this for creating command aliases.
* unix_msgs.c cmd_match():
Some more checks of scan termination, now it won't
match pattern HELP with token HELPP, and will
match HELP with HELP ...
Tue Feb 1 16:18:44 1994 Matti Aarnio ([email protected])
* unix_msgs.c:
More complex command pattern matching.
Result attributes BUILTIN HARDCODED, and BUILTIN ERROR.
* file_queue.c, unix_route.c, recv_file.c, prototypes.h:
Pulled back the multi-link queueing.
Mon Jan 31 08:53:51 1994 Matti Aarnio ([email protected])
* nmr.c, unix_routes.c:
Found out a mysterious inactivity problem with ALIJKU65,
where Gerald Hanusch has thought that
UCP ROUTE ALIJKU29 to DEFAULT
will send it via the default route..
Took several precautions on finding bogons from the route
batabase, if physical link exists, no problem.., and added
a way to delete explicite entry by using special targets
"OFF", and "DEFAULT". Either one will do.
* unix_msgs.c:
More thorough implementation of CMD-stuff. Especially allowing
running of arbitary programs.
* ucp.c, io.c, consts.h, clientutils.h:
UCP RESCAN EXITS, UCP RESCAN QUEUE -commands.
* file_queue.c add_to_file_queue():
Disabled (effectively) the `altline' queueing code that
I tried to put in so that inplicite debug_rescan_queue()
would not be needed. We shall see later.
Fri Jan 28 15:31:00 1994 Gerald Hanusch ([email protected])
* util.c parse_envelope():
Default value for "To"-field was build with wrong
contents. It was missing an @..
Fri Jan 28 16:51:00 1994 Matti Aarnio ([email protected])
* unix_msgs.c:
More of NMR features.
* protocol.c, io.c, main.c:
Link activation does implicite debug_rescan_queue()
This *SHOULD* be done via some other mechanism, such
as parallel queueing into N links, but we shall see..
* protocol.c, io.c, nmr.c, recv_file.c, file_queue.c, consts.h:
An attempt to codify a parallel queueing mechanism,
but stymied at the moment. Decided to adopt Geralds
approach of link activation debug_rescan_queue() as
an intermediate solution..
Thu Jan 27 08:58:19 1994 Matti Aarnio ([email protected])
* unix_msgs.c msg_run(), and others..:
Coded MSG RUN, added some logging and error reporting
in case msg-exit.cf (hujinje.cf:MSGEXITS) can't be
opened for analysis, etc.
* util.c despace():
Sometimes the despace() is called with a "string"
which is 0 size. That is, it starts with NULL, and
in fact whole buffer is of NULLs.. (Especially
the SYSIN processing can do this.)
Tue Jan 25 09:06:18 1994 Matti Aarnio ([email protected])
* unix_msgs.c:
The first cut on msg-exit.cf handling. RUNNING something
is left for further job, but initial proof of concept for
the tests is now in there.
* unix_msgs.c, unix_msgs.h:
New routine: msg_register() to dynamically bind
the NMR processors.
* consts.h, unix.c, io.c, prototypes.h:
new "CMD": CMD_MSG_REGISTER, which in turn
just calls unix_msgs.c:msg_register() with
the data.
Fri Jan 21 09:49:54 1994 Matti Aarnio ([email protected])
* unix_tcp.c unix_tcp_receive():
Send ENQUIRE instead of SYN+NAK when in TCP_SYNC state.
* file_queue.c
* io.c, nmr.c:
A new command "Q SYS S" to show more details about
queue timings/buffer spaces.
Mon Jan 17 10:43:23 1994 Matti Aarnio ([email protected])
* prototypes.h, util.c parse_envelope():
A new parameter, and a new header entry to be processed:
OID: nnnn
If it is "0000", and caller (open_xmit_file()) has set
the "assign_oid"-flag, then do the assignment..
Related files: send_file.c, unix.c, libhdrtbx.c, recv_file.c,
sendfile.c, bmail.c, protocol.c
Essentially the sender's spoolid is assigned just once
for the file - when it is opened for xmit. If stream
goes into a restart, same spoolid is used again.
* ucp.c, io.c:
"DEBUG RESCAN -" which does not reinit the file queue
at all; only cleans up the in-core queue by dropping off
everything not actively being sent on the links.
Fri Jan 14 10:26:49 1994 Matti Aarnio ([email protected])
* io.c init_link_state(), file_queue.c many routines:
Queue rip-up/duplicate check as prompted by
mr. Hanusch.
Aarnio's work contain hash_*() -routines to locate
any file from any queue -- assuming we know the
unique file hash value..
* nmr.c find_line_index():
Routes to LOCAL were not recognized.
Thu Jan 13 16:10:03 1994 Matti Aarnio ([email protected])
* file_queue.c dequeue_line_queue():
Spurious brackets caused wrong action... None of the
active files were left alone..
Wed Jan 12 14:52:15 1994 Matti Aarnio ([email protected])
* protocol.c, recv_file.c:
FileParam->OurFileId, and FileParam->FileId usage
altered. Now a new file gets its FID: when it is submitted,
and not again later, when it is put on xmit stream.
This uses spoolids also for locally delivered files,
which may, or may not be what user asks for.
* unix_msgs.c:
Still more things to get the initial system perfomance
similar to state before massive rewrites.
* unix_tcp.c:
Passive connection acceptance is difficult - eventually it
seems to work after a fashion, but causes sometimes extra
(and unnecessary) link restart.
* sendfile.c:
Target address parsing is now more flexible. First non '-'
beginning option is the target address (excluding option
parameters), and thus it need not be the first parameter.
Also local users can be defined w/o local host name.
* send.c:
Now can do "send localuser 'messsage text'" -command,
not always needing to write addresses in fully qualified
form...
Wed Jan 12 11:02:03 1993 Gerald Hanusch ([email protected])
* unix_msgs.c, nmr.c:
Missing things, and typographic mistakes rectified.
Wed Jan 12 00:29:52 1994 Matti Aarnio ([email protected])
* consts.h:
Altered "VERSION" to be "3.1."
* unix_msgs.c, unix_brdcst.c, nmr.c:
Massive rewriting to accomodate message_exit().
Now the NMR processing really makes sense :-)
... and now to test it..
Seems to work, then to implement the exits..
Tue Jan 11 09:10:29 1994 Matti Aarnio ([email protected])
* sendfile.c, bmail.c:
ASCII header writing altered to conform that of the
incoming files -- that is, 512 bytes of ASCII in the
beginning.
* util.c parse_envelope(), file_queue.c, unix.c:
If scanned envelope has "FID: 0000\n" in it, get
a new FID number from send_file.c:get_send_fileid(),
and store it into the file. It might not be unique
in the system, but it will sequence nicely..
(spool-file must be opened "r+")
* unix_tcp.c read_passive_tcp_connection():
Yet another approach on handling the passive-side
activation..
* protocol.c handle_ack():
When remote end wants to shut down, it starts rejecting
new streams. (or whatever reason there is to reject something)
Sender didn't spend its time on efficient data sending, rather
it went to use handle_ack() every T_ACK, which was SLOW..
Rearranging S_REFUSED handling a bit, and adding some
new tests did increase its efficiency dramatically.
Tue Jan 11 08:20:40 1994 Gerald Hanusch ([email protected])
* protocol.c:
Rearranged queue handling calls inside protocol by
moving dequeue_file_entry(), and delete_file() from
complete_rcb() into handle_ack().
Mon Jan 10 08:52:40 1994 Matti Aarnio ([email protected])
* io.c:
When gets UCP SHUT, or UCP SHUT ABORT, closes immediately
the passive end, and then signs off links. That way the
other ends won't cause link-restarts all the time..
* unix_tcp.c send_unix_tcp():
Do select-for-write and timeout via that method..
Also uses microsecond accurate (well, struct timeval)
timing. Should work faster on Linux..
* prototypes.h, util.c:
NEW: timevaladd(), timevalsub() -- time arithmetic routines.
* file_queue.c dequeue_file_entry(), io.c init_link_state():
dequeue_file_entry() relies on CurrentStream -variable,
made sure it is set properly when calling it.
Now queueing works :)
* protocol.c, prototypes.h, send_file.c:
Some rearrangements of send_njh_dsh_data() usage.
Mon Jan 10 08:52:40 1994 Gerald Hanusch ([email protected])
* protocol.c handle_text_block():
Rearranged stream EOF acknowledgement code to be more robust.
Fri Jan 7 10:41:11 1994 Matti Aarnio ([email protected])
* prototypes.h:
Added long missing entries for a couple routines in
file_queue.c
* rscsacct.c, protocol.c:
Moved sending account collection into S_NJT_SENT state.
(Old was S_EOF_SENT, but it was called rarely.. it seems..)
Thu Jan 6 15:10:51 1994 Matti Aarnio ([email protected])
* unix_tcp.c unix_tcp_receive():
"Skulldruggery..." Aargh..
Yes, some elementary errors can be of most difficult to
understand, and to find out. RecvSize was able to go
negative, and thus screw up the buffer management logic..
Wed Jan 5 12:46:47 1994 Matti Aarnio ([email protected])
* unix_tcp.c unix_tcp_receive():
Still more joggling with TTB processing, is it
correct now ?
Tue Jan 4 08:52:07 1994 Matti Aarnio ([email protected])
* libsendcmd.c, unix.c, unix_tcp.c:
Found out about spurious htonl() on returning results
of inet_addr() to network-order s_addr -fields..
On SPARC system the hton*(), and ntoh*() are no-ops,
on 386'es they are not...
Fri Dec 24 02:25:35 1993 Matti Aarnio ([email protected])
* unix_tcp.c, unix.c:
Hunted out why unix_tcp.c:unix_tcp_receive()
didn't process all arrived bytes at once.
Things have improved - I hope.
(io.c: Q SYS output has temporarily a display of
in, and outbound buffer ages & sizes.)
* protocol.c:
Changed all logger() calls before restart_channel()
to be of level 1.
Thu Dec 23 11:49:18 1993 Matti Aarnio ([email protected])
* protocol.c, io.c, file_queue.c, unix_tcp.c:
Reorganized file queue routines into one file.
Located common link state ripup routines into
IO.C:init_link_state().
Made sure there is a preceeding logger() message
(at least on level 2) before restart_channel()
is called.
Tue Dec 21 11:11:34 1993 Matti Aarnio ([email protected])
* unix_tcp.c:
Rewrote the setsockopt() usage. Model from BSD net2 rmt
program.
Mon Dec 20 00:04:22 1993 Matti Aarnio ([email protected])
* unix_tcp.c:
Teached new trick: setsockopt() sets TCP level buffers
to be 32k, with hope of not needing any fancy NBSTREAM
bufferings..
* main.c:
Make sure the PID_FILE has protection 0644 -- so, it is globally
readable..
* protocol.c, io.c, file_queue.c:
Tracked queue accounting, maybe it now will
not loose files from its queues.
Sun Dec 19 02:01:36 1993 Matti Aarnio ([email protected])
* unix_tcp.c send_unix_tcp():
A non-blocking read()+write() so that system won't
deadlock in case of kernel tcp-buffer filling, and
local process waiting on write() that the other end
read()s, while it is waiting on write(), that we
read()...
Code makes an serious assumtion:
8kB gets transmitted in under 15 seconds
time of waiting on this module!
On systems with in-kernel TCP buf-sizes being 16k, or
more this is no problem. On systems with SMALLER
buffers it may well be, as that time is spent in
synchronous mode waiting the receiver to act upon
the data..
One possibility is to do:
setsockopt(fd,TCP,SO_RCVBUF,&var32k,sizeof(var32k)),
setsockopt(fd,TCP,SO_SNDBUF,&var32k,sizeof(var32k)),
but will it work on all systems ?
Wed Dec 15 08:35:10 1993 Matti Aarnio ([email protected])
* protocol.c, unix_tcp.c, io.c
Trying to eradict occasional spurious write() hangups..
* unix_files.c:
Report message of Act_DISCARD is changed to a more informative
one.
* protocol.c, read_config.c, consts.h:
A new stream-interleave mode: F_SLOW_INTERLEAVE
* recv_file.c save_header():
Still had some wrong buffer-references inside sizeof()s..
* consts.h:
Got rid of `GuardBuffer' from inside the link data structure.
(Relict from a couple days earlier for debugging the stream
overflows / ActiveStreams -flags problems.)