File: HISTORY

package info (click to toggle)
qpage 3.3final-3
  • links: PTS
  • area: non-free
  • in suites: woody
  • size: 648 kB
  • ctags: 331
  • sloc: ansic: 5,421; makefile: 158; sh: 56
file content (960 lines) | stat: -rw-r--r-- 30,518 bytes parent folder | download | duplicates (2)
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

SCCS/s.qpage.c:

D 3.36	98/07/26 13:05:41 tomiii	36 35	00001/00001/00622
update copyright notice

D 3.35	98/07/07 01:20:04 tomiii	35 34	00002/00002/00621
don't strip() the message on the client side

D 3.34	98/05/16 13:08:21 tomiii	34 33	00001/00001/00622
single-word arguments with more than 1024 characters dump core

D 3.33	98/04/26 17:20:11 tomiii	33 32	00003/00003/00620
wrong error message
wrong name of configuration file

D 3.32	98/04/02 23:38:18 tomiii	32 31	00004/00002/00619
always strip message

D 3.31	98/03/19 23:49:11 tomiii	31 30	00015/00004/00606
don't read the configuration until after dropping root privs

D 3.30	98/03/18 00:45:12 tomiii	30 29	00001/00001/00609
fix client-only compile error

D 3.29	98/03/17 01:13:02 tomiii	29 28	00014/00003/00596
add comment block for expand_recipients()

D 3.28	98/03/12 00:20:43 tomiii	28 27	00097/00031/00502
expand groups in interactive mode 
check for illegal use of -C option

D 3.27	98/02/21 22:17:05 tomiii	27 26	00040/00036/00493
added silent mode
always drop root privileges to avoid inconsistent behavior
make -q0 process the queue without forking the SNPP daemon

D 3.26	97/06/26 23:28:48 tomiii	26 25	00001/00000/00528
add -C to usage

D 3.25	97/06/26 23:09:44 tomiii	25 24	00009/00003/00519
add -C option

D 3.24	97/06/26 22:33:32 tomiii	24 23	00022/00008/00500
add syntax warning
accept undocumented port parameter on the command line (for testing only)

D 3.23	97/06/21 14:38:02 tomiii	23 22	00011/00012/00497
add -P option, make -t a synomym for -a

D 3.22	97/06/04 00:09:20 tomiii	22 21	00004/00004/00505
make buffer allocation code slightly more readable

D 3.21	97/04/27 23:04:18 tomiii	21 20	00004/00004/00505
typecast signal handlers so AIX doesn't complain

D 3.20	97/04/10 09:22:49 tomiii	20 19	00001/00001/00508
update copyright date

D 3.19	97/04/07 20:02:11 tomiii	19 18	00017/00006/00492
allow -f"" to override e-mail address from -m option

D 3.18	97/04/05 17:04:31 tomiii	18 17	00046/00016/00452
moved includes to qpage.h
added -Q option
create message id in interactive mode

D 3.17	97/01/19 12:20:12 tomiii	17 16	00051/00026/00417
converted function prototypes to ANSI C
added warning message when running interactive mode as root
added support for "client only" mode

D 3.16	96/12/22 02:04:27 tomiii	16 15	00040/00004/00403
fix buffer problems in command_line_message
add support for multiple fallback servers

D 3.15	96/11/29 12:59:42 tomiii	15 14	00007/00005/00400
client return code should reflect page status

D 3.14	96/11/27 09:16:32 tomiii	14 13	00002/00000/00403
lint fix

D 3.13	96/11/23 16:59:37 tomiii	13 12	00002/00001/00401
changed usage of %Q% in do_version()

D 3.12	96/11/19 00:39:07 tomiii	12 11	00016/00010/00386
added -m option to process an e-mail message

D 3.11	96/11/04 09:13:22 tomiii	11 10	00001/00001/00395
use INVALID_TIME define

D 3.10	96/10/09 23:12:17 tomiii	10 9	00014/00003/00382
changed SIGCONT to SIGUSR1
fixed bug which prevented -a, -c, or -l from being used without -p

D 3.9	96/06/15 15:21:10 tomiii	9 8	00024/00014/00361
fixed signal handling
check command line syntax (-a, -c, -l must be followed by -p)

D 3.8	96/05/30 11:13:28 tomiii	8 7	00001/00001/00374
changed realloc() to my_realloc()

D 3.7	96/05/30 09:47:23 tomiii	7 6	00011/00001/00364
don't call sigaction() if SA_RESTART isn't defined

D 3.6	96/05/01 01:47:17 tomiii	6 5	00008/00002/00357
changed getmessage() to getinput()

D 3.5	96/04/28 17:02:06 tomiii	5 4	00007/00008/00352
check return code of read_config_file() in interactive mode

D 3.4	96/04/24 21:59:41 tomiii	4 3	00026/00007/00334
added interactive option

D 3.3	96/04/04 22:15:18 tomiii	3 2	00001/00009/00340
fixed minor lint problems

D 3.2	96/04/03 21:01:33 tomiii	2 1	00000/00004/00349
enabled client support

D 3.1	96/04/01 20:26:47 tomiii	1 0	00353/00000/00000
date and time created 96/04/01 20:26:47 by tomiii

SCCS/s.usersnpp.c:

D 1.18	98/10/24 18:28:20 tomiii	18 17	00016/00001/00412
corner case: don't add extra whitespace

D 1.17	98/03/12 00:36:36 tomiii	17 16	00008/00004/00405
fix Y2K problem when passing HOLDuntil to the server

D 1.16	98/02/21 22:34:03 tomiii	16 15	00007/00004/00402
make return code reflect page status

D 1.15	97/04/21 19:42:55 tomiii	15 14	00001/00001/00405
lint fixes

D 1.14	97/04/13 16:03:15 tomiii	14 13	00020/00007/00386
fflush() SNPP commands
fix DATA command to only send up to 70 characters on a line

D 1.13	97/04/05 17:12:40 tomiii	13 12	00000/00012/00393
move includes to qpage.h

D 1.12	97/01/19 12:27:10 tomiii	12 11	00033/00045/00372
converted function prototypes to ANSI C

D 1.11	96/12/22 02:03:33 tomiii	11 10	00014/00004/00403
add support for multiple fallback servers

D 1.10	96/11/27 09:07:53 tomiii	10 9	00054/00048/00353
fixed yucky syntax of send_command (and other lint fixes)

D 1.9	96/10/09 23:18:52 tomiii	9 8	00006/00000/00395
added comments

D 1.8	96/06/16 15:07:28 tomiii	8 7	00020/00010/00375
aesthetic changes

D 1.7	96/05/30 09:52:40 tomiii	7 6	00013/00006/00372
changed cftime() to localtime()/sprintf() for portability

D 1.6	96/05/01 01:53:11 tomiii	6 5	00035/00005/00343
try DATA command and then fall back to MESSage

D 1.5	96/04/24 22:13:08 tomiii	5 4	00004/00004/00344
changed debug to Debug

D 1.4	96/04/04 22:16:07 tomiii	4 3	00002/00002/00346
fixed minor lint problems

D 1.3	96/04/03 21:04:13 tomiii	3 2	00124/00135/00224
combined get_response() calls to one inside send_command()

D 1.2	96/04/02 23:12:10 tomiii	2 1	00238/00034/00121
parse responses from the server rather than just jam the data

D 1.1	96/04/01 20:30:32 tomiii	1 0	00155/00000/00000
date and time created 96/04/01 20:30:32 by tomiii

SCCS/s.srvrsnpp.c:

D 1.46	98/10/24 18:29:06 tomiii	47 46	00007/00001/01413
close stdin, stdout, and stderr
disable deadman timer

D 1.45	98/07/07 01:20:30 tomiii	46 45	00002/00001/01412
better usage of strip()

D 1.44	98/06/11 22:34:23 tomiii	45 44	00001/00001/01412
wrong usage of timeout in poll()

D 1.43	98/06/07 03:43:34 tomiii	44 43	00038/00006/01375
if available, use poll() instead of select()
kill the child if a queue run takes longer than 5 minutes

D 1.42	98/05/25 11:44:08 tomiii	43 42	00016/00002/01365
added support for synchronous keyword
don't fork a queue-processing child if one is already running

D 1.41	98/05/16 16:15:30 tomiii	42 41	00001/00001/01366
new syntax for write_page()

D 1.40	98/05/16 13:10:44 tomiii	41 40	00037/00020/01330
LOGIn command causes core dump
add support for pidfile

D 1.39	98/04/26 23:47:38 tomiii	40 39	00002/00000/01348
lint

D 1.38	98/04/26 23:44:28 tomiii	39 38	00001/00009/01347
will I ever get this right?

D 1.37	98/04/26 23:38:55 tomiii	38 37	00001/00001/01355
always enable XWHO

D 1.36	98/04/26 23:38:02 tomiii	37 36	00001/00001/01355
always enable XWHO

D 1.35	98/04/26 17:22:26 tomiii	36 35	00096/00030/01260
add support for tcp_wrappers

D 1.34	98/04/02 23:40:06 tomiii	35 34	00004/00002/01286
always strip message

D 1.33	98/03/19 23:49:25 tomiii	34 33	00005/00000/01283
read the configuration after dropping root privs

D 1.32	98/03/12 00:35:57 tomiii	33 32	00175/00184/01108
only send SIGUSR1 to the parent, not to all processes
only use one long-term process, fork children when necessary
reread configuration on SIGHUP

D 1.31	98/02/21 22:33:26 tomiii	32 31	00062/00024/01230
add new XWHO command (unofficial)

D 1.30	97/06/26 23:10:28 tomiii	31 30	00005/00005/01249
add support for -C option

D 1.29	97/06/26 22:33:57 tomiii	30 29	00013/00010/01241
accept undocumented port parameter on the command line (for testing only)

D 1.28	97/06/04 00:13:29 tomiii	29 28	00009/00003/01242
put [] around IP address to make it valid in mail headers

D 1.27	97/04/18 09:37:24 tomiii	28 27	00008/00004/01237
log debug messages only if -d specified

D 1.26	97/04/13 01:33:24 tomiii	27 26	00005/00001/01236
print messageid after SEND command

D 1.25	97/04/07 20:03:11 tomiii	26 25	00001/00001/01236
don't mislead user--print "message queued" for SEND command

D 1.24	97/04/05 17:12:13 tomiii	25 24	00098/00064/01139
add save flag to clear_page()
use level 0 for e-mail notification
fix response string for LEVEl command
add XQUEue command when compiling with -DDEBUG
save hostname information from SNPP socket

D 1.23	97/03/31 22:15:25 tomiii	24 23	00080/00045/01123
fixed group support
simplify logging

D 1.22	97/01/23 18:39:20 tomiii	23 22	00009/00009/01159
leave controlling terminal attached in debug mode

D 1.21	97/01/23 17:49:30 tomiii	22 21	00094/00050/01074
changed syslog() to qpage_log()
made error messages more helpful
leave process in the foreground for debug mode

D 1.20	97/01/19 12:31:59 tomiii	21 20	00171/00214/00953
converted function prototypes to ANSI C
initial support for unique msgid token per page
initial support for page groups in the configuration file
truncate message to 500 bytes before sending it to syslog()
moved getinput() to util.c
lint fixes

D 1.19	96/11/27 09:46:39 tomiii	20 19	00002/00000/01165
lint fix

D 1.18	96/11/27 09:35:35 tomiii	19 18	00004/00004/01161
change of heart: make extra SNPP commands *not* the default

D 1.17	96/11/27 09:16:39 tomiii	18 17	00004/00000/01161
lint fixes

D 1.16	96/11/26 00:42:14 tomiii	17 16	00071/00000/01090
added debugging commands

D 1.15	96/11/23 17:02:48 tomiii	16 15	00009/00001/01081
added current time to 220 greeting message

D 1.14	96/11/19 00:44:56 tomiii	15 14	00002/00002/01080
fixed spelling error in declaration

D 1.13	96/11/14 00:43:15 tomiii	14 12	00001/00001/01081


D 1.12	96/11/04 09:32:52 tomiii	12 11	00007/00097/01075
moved SNPP time parser to util.c
changed SNPP messages to be more intuitive

D 1.11	96/10/09 23:18:18 tomiii	11 10	00053/00033/01119
added lots of comments
changed SIGCONT to SIGUSR1
added missing %m's to syslog() calls

D 1.10	96/06/15 15:30:16 tomiii	10 9	00042/00011/01110
fixed compiler-dependent code in parsing of HOLDuntil
fixed broken signal handling for SIGCHLD
log all incoming SNPP connections (with ident data if available)

D 1.9	96/05/30 11:13:50 tomiii	9 8	00001/00001/01120
changed realloc() to my_realloc()

D 1.8	96/05/30 09:51:54 tomiii	8 7	00001/00000/01120
#include <time.h>

D 1.7	96/05/01 02:04:44 tomiii	7 6	00006/00002/01114
don't set the timer in getinput() when reading from stdin

D 1.6	96/05/01 01:52:09 tomiii	6 5	00086/00083/01030
merge getline() and getmessage() into getinput()
add code to handle timeouts

D 1.5	96/04/28 17:05:41 tomiii	5 4	00098/00066/01015
removed dashes from dohelp() output
read the configuration file to detect errors before backgrounding
print warning message if non-root user attempts to bind reserved port
give up root permissions after setting up SNPP socket

D 1.4	96/04/24 22:12:33 tomiii	4 3	00036/00027/01045
add support for raw pagerids
addded more syslog() messages

D 1.3	96/04/04 22:15:49 tomiii	3 2	00001/00001/01071
fixed minor lint problems

D 1.2	96/04/03 21:02:20 tomiii	2 1	00006/00002/01066
added "page submitted" syslog

D 1.1	96/04/01 20:30:32 tomiii	1 0	01068/00000/00000
date and time created 96/04/01 20:30:32 by tomiii

SCCS/s.queue.c:

D 1.22	98/07/07 01:19:33 tomiii	22 21	00000/00001/00898
remove spurious call to strip()

D 1.21	98/05/16 16:15:00 tomiii	21 20	00020/00007/00879
don't blather about e-mail notifications for new pages

D 1.20	98/04/26 17:21:42 tomiii	20 19	00008/00006/00878
don't process bad pages during queue runs

D 1.19	98/04/02 23:39:52 tomiii	19 18	00001/00001/00883
always strip message

D 1.18	98/03/12 00:33:24 tomiii	18 17	00061/00056/00823
create lock files mode 666
rename bad pages to Bxxxxxx
lock the page queue during queue runs

D 1.17	97/04/28 08:43:04 tomiii	17 16	00001/00001/00878
fix bad return code

D 1.16	97/04/13 16:01:58 tomiii	16 15	00003/00000/00876
handle old queue files which don't have message IDs

D 1.15	97/04/13 01:38:42 tomiii	15 14	00003/00000/00873
print blank line between pages

D 1.14	97/04/13 01:32:42 tomiii	14 13	00030/00029/00843
fix -Q output
always rewrite queue files because flags may have changed

D 1.13	97/04/05 17:09:16 tomiii	13 12	00150/00036/00722
moved includes to qpage.h
add hostname to queue files
send e-mail notification
use my_ctime() instead of the real ctime()
added showqueue() function

D 1.12	97/01/23 17:50:16 tomiii	12 11	00044/00036/00714
changed syslog() to qpage_log()

D 1.11	97/01/19 12:35:27 tomiii	11 10	00074/00042/00676
converted function prototypes to ANSI C
skip successful pagers on retries
initial support for unique msgid token per page
lint fixes

D 1.10	96/11/27 09:12:32 tomiii	10 9	00005/00003/00713
lint fixes

D 1.9	96/11/23 17:01:26 tomiii	9 8	00014/00004/00702
buffer size computed incorrectly

D 1.8	96/11/19 00:41:56 tomiii	8 7	00002/00002/00704
fixed spelling error in declaration

D 1.7	96/11/14 00:39:22 tomiii	7 6	00011/00004/00695
preserve whitespace when reading back the CALLerid data

D 1.6	96/06/04 14:11:33 tomiii	6 5	00004/00004/00695
fdopen() with "w" rather than "w+" for compatibility
added %m to several syslog() calls
fixed filename parameter to some syslog() calls

D 1.5	96/05/28 08:33:28 tomiii	5 4	00066/00010/00633
add "goodtries" counter
explicitly truncate the queue file before rewriting it
check the timestamp on the page queue in case new jobs were submitted

D 1.4	96/04/24 22:10:29 tomiii	4 3	00051/00011/00592
print flag meanings in queue file

D 1.3	96/04/04 22:15:35 tomiii	3 2	00004/00002/00599
fixed minor lint problems

D 1.2	96/04/03 21:01:01 tomiii	2 1	00003/00001/00598
check for debug flag before logging "skipping %s for now"

D 1.1	96/04/01 20:30:30 tomiii	1 0	00599/00000/00000
date and time created 96/04/01 20:30:30 by tomiii

SCCS/s.config.c:

D 1.29	99/01/01 19:14:49 tomiii	29 28	00005/00002/01563
print warning message if dialcmd is used in service definitions

D 1.28	98/08/22 17:17:24 tomiii	28 27	00003/00003/01562
use enumeration instead of hard-coded integer values

D 1.27	98/07/26 11:22:01 tomiii	27 26	00036/00000/01529
added sigfile keyword

D 1.26	98/07/07 01:20:58 tomiii	26 25	00004/00000/01525
enforce a maximum page size of 250 characters (for now)

D 1.25	98/05/25 11:42:16 tomiii	25 24	00047/00013/01478
added synchronous keyword
fixed comment processing

D 1.24	98/05/16 13:08:50 tomiii	24 23	00076/00004/01415
add pidfile keyword

D 1.23	98/04/27 01:19:32 tomiii	23 22	00002/00003/01417
don't append device names in service definitions

D 1.22	98/04/26 17:20:47 tomiii	22 21	00012/00004/01408
check access to lock directory

D 1.21	98/04/02 23:38:45 tomiii	21 20	00000/00019/01412
remove stripmsg keyword

D 1.20	98/03/18 00:40:11 tomiii	20 19	00008/00016/01423
delete initcmd from service specification

D 1.19	98/03/17 01:12:20 tomiii	19 18	00158/00014/01281
fix check_service to make sure we have a dialcmd
make sure groups and pagers do not have overlapping namespaces
add missing comment sections

D 1.18	98/03/12 00:26:45 tomiii	18 17	00568/00306/00727
major changes--almost a total rewrite
add support for including other config files
add modem groups
default service always exists
check validity of keywords (for example, can we access() the modem?)
add lockdir major keyword
add phone minor keyword to service specification
changed strip minor keyword to stripmsg
changed prefix minor keyword to msgprefix
add support for SIGHUP to reread the configuration file(s)

D 1.17	98/02/21 22:22:11 tomiii	17 16	00214/00109/00819
the "default" service always exists now
new services are initialized from the default service
new "initcmd" keyword for services
new "stripmsg" keyword for services
new "prefix" keyword for services
new "text" keyword for all entries

D 1.16	97/06/26 23:10:08 tomiii	16 15	00004/00004/00924
add support for -C option

D 1.15	97/06/05 20:57:37 tomiii	15 14	00028/00022/00900
change forcehostname syntax

D 1.14	97/06/04 00:10:31 tomiii	14 13	00060/00017/00862
add forcehostname keyword
delete dead code
initialize global variables

D 1.13	97/04/27 23:04:59 tomiii	13 12	00005/00011/00874
fix missed non-ANSI function declarations

D 1.12	97/04/07 20:02:37 tomiii	12 11	00006/00002/00879
check syntax of duty schedule when file is read

D 1.11	97/04/05 17:05:01 tomiii	11 10	00041/00007/00840
added administrator keyword

D 1.10	97/04/01 09:51:11 tomiii	10 9	00111/00012/00736
move includes to qpage.h
added support for page groups

D 1.9	97/01/19 12:36:33 tomiii	9 8	00023/00020/00725
converted function prototypes to ANSI C
initial conversion from printf/syslog to qpage_log()
lint fixes

D 1.8	96/11/27 09:23:56 tomiii	8 7	00002/00000/00743
lint fix

D 1.7	96/06/04 14:09:48 tomiii	7 6	00004/00000/00739
fixed seg fault if no device/dialcmd in default service entry

D 1.6	96/05/30 09:48:22 tomiii	6 5	00023/00002/00716
added "parity" keyword for service specification

D 1.5	96/05/02 00:49:43 tomiii	5 4	00001/00001/00717
fixed broken preprocessor directive

D 1.4	96/05/01 01:48:19 tomiii	4 3	00033/00000/00685
added snpptimeout keyword

D 1.3	96/04/28 17:03:00 tomiii	3 2	00054/00021/00631
added haserrors flag so better error checking can be done

D 1.2	96/04/24 22:02:51 tomiii	2 1	00061/00004/00591
changed identfrom default to TRUE rather than FALSE
added identtimeout keyword
added allowpid keyword
added range checking for some keywords

D 1.1	96/04/01 20:30:26 tomiii	1 0	00595/00000/00000
date and time created 96/04/01 20:30:26 by tomiii

SCCS/s.util.c:

D 1.32	98/10/24 18:30:52 tomiii	33 32	00002/00002/01488
declare JobsPending and ReReadConfig volatile so they will

D 1.31	98/07/07 00:03:12 tomiii	32 31	00001/00001/01489
allow CR in addition to LF and CRLF as a line terminator

D 1.30	98/05/16 16:16:01 tomiii	31 30	00008/00002/01482
fix previous delta

D 1.29	98/05/16 13:11:18 tomiii	30 29	00004/00002/01480
don't print "cannot lock queue lockfile" unless debugging

D 1.28	98/04/26 17:23:33 tomiii	29 28	00048/00027/01434
use waitpid() if possible in case we miss SIGCHLD

D 1.27	98/04/02 23:41:19 tomiii	28 27	00100/00018/01361
change strip() to use 7-bit chars and escape control chars

D 1.26	98/03/18 00:41:27 tomiii	27 26	00006/00003/01373
handle Y2K problem correctly

D 1.25	98/03/17 01:17:06 tomiii	26 25	00065/00021/01311
added strjoin()
fixed msgcpy() to split the message correctly at whitespace

D 1.24	98/03/12 00:38:57 tomiii	25 24	00145/00048/01187
much better SIGCHLD handler
use vsyslog() when available
fix drop_root_privileges() implementation
add safe_strtok() function--the real strtok() sucks rocks

D 1.23	98/02/21 22:36:01 tomiii	24 23	00112/00060/01123
new drop_root_privileges() function
use 000 umask when creating lockfiles
remove useless sysinfo() code
new strip() function

D 1.22	97/04/27 23:06:09 tomiii	23 22	00023/00002/01160
AIX does not support vsyslog()

D 1.21	97/04/23 08:28:57 tomiii	22 21	00015/00002/01147
sysinfo() not supported on some platforms

D 1.20	97/04/13 01:33:52 tomiii	21 20	00075/00000/01074
move msgcpy() from ixo.c to util.c

D 1.19	97/04/07 20:26:51 tomiii	20 19	00004/00001/01070
fix gmtoffset computation again (is it right this time?)

D 1.18	97/04/07 20:03:44 tomiii	19 18	00009/00001/01062
allow midnight to be specified as 0 or 2400

D 1.17	97/04/05 17:13:59 tomiii	18 16	00155/00023/00908
move includes to qpage.h
add LOG_ALERT kludge to qpage_log()
add my_ctime() function
add on_duty() function
add get_sysinfo() function

D 1.13.1.1	97/01/23 19:01:40 tomiii	17 13	00003/00010/00756
fixed non-portable timezone code

D 1.16	97/01/23 18:52:01 tomiii	16 15	00003/00010/00928
fixed non-portable timezone code

D 1.15	97/01/23 18:37:59 tomiii	15 14	00080/00079/00858
changed syslog() to qpage_log()

D 1.14	97/01/19 12:38:00 tomiii	14 13	00248/00077/00689
converted function prototypes to ANSI C
added qpage_log()
moved getinput() from srvrsnpp.c
lint fixes

D 1.13	96/12/22 02:01:43 tomiii	13 12	00001/00000/00765
send a syslog message when exiting via SIGTERM

D 1.12	96/11/27 09:24:11 tomiii	12 11	00002/00000/00763
lint fix

D 1.11	96/11/04 09:32:04 tomiii	11 10	00135/00005/00628
moved SNPP time parser from srvrsnpp.c
call SNPP time parser from parse_time()

D 1.10	96/10/09 23:19:49 tomiii	10 9	00019/00006/00614
changed SIGCONT to SIGUSR1
added missing %m's to syslog() calls
added comments

D 1.9	96/06/15 15:27:34 tomiii	9 8	00006/00009/00614
fix sigterm() to kill everyone else in the process group

D 1.8	96/06/04 14:02:53 tomiii	8 7	00003/00001/00620
fixed check for active owner of lockfile

D 1.7	96/05/30 11:14:57 tomiii	7 6	00025/00000/00596
added my_realloc()

D 1.6	96/05/30 09:54:12 tomiii	6 5	00004/00004/00592
only include <sys/mkdev.h> on Solaris machines
zero the entire lock structure rather than individual fields for portability

D 1.5	96/05/01 01:53:52 tomiii	5 4	00015/00000/00581
moved sigalrm() from ident.c to this file

D 1.4	96/04/24 22:13:56 tomiii	4 3	00195/00004/00386
added code to lock/unlock modem device

D 1.3	96/04/04 22:16:19 tomiii	3 2	00001/00003/00389
fixed minor lint problems

D 1.2	96/04/03 21:05:11 tomiii	2 1	00003/00002/00389
check for debug flag before logging "Child exited..."

D 1.1	96/04/01 20:30:33 tomiii	1 0	00391/00000/00000
date and time created 96/04/01 20:30:33 by tomiii

SCCS/s.ixo.c:

D 1.46	99/01/01 17:48:28 tomiii	46 45	00008/00003/01356
include protocol overhead in maxmsgsize

D 1.45	98/12/20 14:26:03 tomiii	45 44	00004/00001/01355
don't print spurious error message

D 1.44	98/10/25 10:50:58 tomiii	44 43	00001/00001/01355
strip 8th bit on incoming characters

D 1.43	98/10/24 17:58:15 tomiii	43 42	00004/00001/01352
the check for enough space for "-oo-" used the wrong limit

D 1.42	98/09/29 22:26:47 tomiii	42 41	00024/00018/01329
fix a memory leak and use better implementation of prefixes

D 1.41	98/09/15 19:58:22 tomiii	41 40	00001/00001/01346
AIX requires CLOCAL being set before read()/write() will succeed

D 1.40	98/09/10 23:52:36 tomiii	40 39	00002/00002/01345
delete references to O_NDELAY

D 1.39	98/08/22 17:16:49 tomiii	39 38	00156/00126/01191
rewrite of getpacket() to work around AIX select()/read() bug

D 1.38	98/07/26 11:21:15 tomiii	38 37	00002/00002/01315
spaces instead of tabs typo

D 1.37	98/07/12 13:49:56 tomiii	37 36	00012/00001/01305
take into account the size of field1 when computing max_size

D 1.36	98/07/07 01:21:19 tomiii	36 35	00027/00006/01279
close the modem in a non-blocking way

D 1.35	98/07/06 22:33:47 tomiii	35 34	00001/00001/01284
fix incorrect error message

D 1.34	98/06/11 22:34:22 tomiii	34 33	00001/00001/01284
wrong usage of timeout in poll()

D 1.33	98/06/07 03:42:08 tomiii	33 32	00068/00017/01217
if available, use poll() instead of select()
if TIOCM_CAR and/or TIOCM_DTR are undefined, drop that functionality

D 1.32	98/06/01 01:22:05 tomiii	32 31	00063/00022/01171
attempt to gracefully recover from being hung up on

D 1.31	98/05/28 23:42:19 tomiii	31 30	00001/00001/01192
no need for IMAXBEL setting on modem device

D 1.30	98/05/25 11:42:54 tomiii	30 29	00020/00015/01173
fixed illegal usage of freed memory

D 1.29	98/05/20 00:21:35 tomiii	29 28	00036/00003/01152
retry forced disconnects again

D 1.28	98/05/16 16:14:02 tomiii	28 27	00036/00017/01119
remove ioctl() calls in favor of tcgetattr()/tcsetattr()

D 1.27	98/04/26 17:21:11 tomiii	27 26	00001/00001/01135
don't hangup modem twice on forced disconnect

D 1.26	98/04/02 23:39:37 tomiii	26 25	00002/00006/01134
add sleep(1) while looking for ID=
always use stripped message

D 1.25	98/03/22 00:23:35 tomiii	25 24	00001/00000/01139
forgot to declare return type of openmodem()

D 1.24	98/03/18 00:41:07 tomiii	24 23	00011/00006/01128
don't dump core if service->device is not a modem specification

D 1.23	98/03/12 00:29:53 tomiii	23 22	00183/00154/00951
no more modemfd global variable
add support for multiple modems

D 1.22	98/02/21 22:30:55 tomiii	22 21	00075/00037/01030
change O_NDELAY to O_NONBLOCK for portability
ignore null characters on input from remote
adjusted some termios settings
send CR and sleep 1 second before attempting to initialize modem
don't spin forever on bad login to remote
add support for strip and prefix keywords

D 1.21	97/12/04 09:26:07 tomiii	21 20	00001/00001/01066
changed Tom Limoncelli's address to tal@lucent.com at his request

D 1.20	97/06/21 15:16:02 tomiii	20 19	00001/00001/01066
make lint hack Solaris specific

D 1.19	97/06/04 00:11:50 tomiii	19 18	00006/00003/01061
fix bug in IXO protocol implementation
truncate a copy of CALLerid, not the real thing

D 1.18	97/04/28 08:43:38 tomiii	18 17	00013/00000/01051
treat FD_ZERO as a special case for lint

D 1.17	97/04/20 00:26:34 tomiii	17 16	00009/00009/01042
logic was backwards when testing result of strstr()

D 1.16	97/04/13 01:31:23 tomiii	16 15	00019/00078/01032
move msgcpy() to util.c
increment goodtries++ where appropriate

D 1.15	97/04/07 20:16:29 tomiii	15 14	00009/00009/01101
allow broken syntax from broken services (such as PageNet)

D 1.14	97/04/01 09:37:28 tomiii	14 13	00080/00059/01030
moved includes to qpage.h
fixed byte-size when not using parity
use termios functions rather than ioctl() calls
add service name to log messages
strip @hostname off the "from" address

D 1.13	97/01/23 17:51:38 tomiii	13 12	00075/00209/01014
changed syslog() to qpage_log()

D 1.12	97/01/19 12:41:55 tomiii	12 11	00034/00048/01189
converted function prototypes to ANSI C
lint fixes

D 1.11	96/12/22 02:02:49 tomiii	11 10	00002/00002/01235
make some getpacket() timeouts longer

D 1.10	96/11/27 09:14:12 tomiii	10 9	00009/00000/01228
lockfile was not being removed on openmodem() failure

D 1.9	96/11/24 11:49:07 tomiii	9 8	00012/00005/01216
added part counter to syslog messages

D 1.8	96/11/23 17:20:14 tomiii	8 7	00044/00041/01177
fixed error detection

D 1.7	96/10/09 23:16:36 tomiii	7 6	00016/00007/01202
added missing %m's to syslog() calls
added comments

D 1.6	96/06/04 14:01:38 tomiii	6 5	00002/00002/01207
fixed fcntl() usage of F_GETFL and F_SETFL

D 1.5	96/05/30 09:59:25 tomiii	5 4	00001/00001/01208
fix broken comment

D 1.4	96/05/30 09:50:47 tomiii	4 3	00035/00010/01174
#include <sys/select.h> explicitly for AIX machines
changed ioctl(FIONBIO) to fcntl(F_GETFL)/fcntl(F_SETFL) for portability
added support for parity specification
turned on CLOCAL flag

D 1.3	96/04/24 22:07:31 tomiii	3 2	00210/00048/00974
added interactive support
lock modem device before opening it
open modem with O_NONBLOCK and then unset non-blocking mode with FIONBIO

D 1.2	96/04/03 20:58:33 tomiii	2 1	00000/00014/01022
removed redundant check for holduntil option

D 1.1	96/04/01 20:30:28 tomiii	1 0	01036/00000/00000
date and time created 96/04/01 20:30:28 by tomiii

SCCS/s.ident.c:

D 1.11	98/03/12 00:27:12 tomiii	11 10	00001/00001/00217
change sccsid to qpage.org

D 1.10	98/02/21 22:26:24 tomiii	10 9	00010/00003/00208
made error message more appropriate

D 1.9	97/04/27 23:05:33 tomiii	9 8	00005/00005/00206
change error messages to identify who is printing them

D 1.8	97/04/01 09:51:34 tomiii	8 7	00000/00013/00211
move includes to qpage.h

D 1.7	97/01/23 17:42:53 tomiii	7 6	00014/00008/00210
changed syslog() to qpage_log()

D 1.6	97/01/19 12:38:29 tomiii	6 5	00012/00014/00206
converted function prototypes to ANSI C
lint fixes

D 1.5	96/11/27 09:24:04 tomiii	5 4	00002/00000/00218
lint fix

D 1.4	96/10/09 23:15:28 tomiii	4 3	00007/00007/00211
convert port values to host byte order before using them
added missing %m's to syslog() calls

D 1.3	96/05/01 01:49:48 tomiii	3 2	00001/00037/00217
moved sigalrm() to util.c
keep SIGALRM handler installed all the time

D 1.2	96/04/24 22:03:44 tomiii	2 1	00067/00008/00187
added timeout code for ident query

D 1.1	96/04/01 20:30:27 tomiii	1 0	00195/00000/00000
date and time created 96/04/01 20:30:27 by tomiii

SCCS/s.readmail.c:

D 1.15	98/05/16 17:23:01 tomiii	15 14	00002/00000/00521


D 1.14	98/05/16 17:14:54 tomiii	14 13	00012/00065/00509
change the way a message is constructed

D 1.13	98/05/16 13:11:44 tomiii	13 12	00006/00000/00568
read entire message so sendmail doesn't get SIGPIPE

D 1.12	98/03/12 00:39:16 tomiii	12 11	00001/00001/00567
change sccsid to qpage.org

D 1.11	97/04/18 09:31:43 tomiii	11 10	00001/00001/00567
replyaddr was missing first 5 characters

D 1.10	97/04/07 20:04:33 tomiii	10 9	00004/00007/00564
allow -f on the command line to override e-mail reply address

D 1.9	97/04/05 17:14:57 tomiii	9 8	00002/00002/00569
use "reply" address instead of "from" address for p->from

D 1.8	97/04/01 09:21:19 tomiii	8 7	00002/00010/00569
don't truncate hostname in e-mail address--let the server do that
move all includes to qpage.h

D 1.7	97/02/10 02:14:30 tomiii	7 6	00012/00012/00567
typecast malloc to (void *)

D 1.6	97/01/19 12:40:10 tomiii	6 5	00055/00031/00524
converted function prototypes to ANSI C
fixed missing space when subject line is absent
lint fixes

D 1.5	96/12/22 01:37:17 tomiii	5 4	00010/00004/00545
don't change p.from if -f"" used on the command line

D 1.4	96/11/27 09:24:24 tomiii	4 3	00002/00000/00547
lint fix

D 1.3	96/11/23 17:01:58 tomiii	3 2	00001/00001/00546
changed realloc() to my_realloc()

D 1.2	96/11/19 01:36:49 tomiii	2 1	00014/00001/00533
fixed MIME code to only use the first text part
make MIME code stop at --

D 1.1	96/11/19 00:44:41 tomiii	1 0	00534/00000/00000
date and time created 96/11/19 00:44:41 by tomiii

SCCS/s.sendmail.c:

D 1.15	98/07/26 11:22:00 tomiii	15 14	00050/00004/00355
added sigfile keyword

D 1.14	98/06/01 01:17:38 tomiii	14 13	00004/00000/00355
handle the case where sendmail isn't found on the system

D 1.13	98/04/29 17:05:16 tomiii	13 12	00002/00002/00353
printed wrong value for "Ident:"

D 1.12	98/04/26 17:30:10 tomiii	12 11	00007/00006/00348
fixed broken pipe handling

D 1.11	98/03/12 00:40:11 tomiii	11 10	00075/00085/00279
change invoke_sendmail() to work like popen()

D 1.10	97/06/26 23:26:24 tomiii	10 9	00001/00001/00363


D 1.9	97/06/05 20:57:55 tomiii	9 8	00025/00005/00339
change forcehostname syntax

D 1.8	97/06/04 00:14:16 tomiii	8 7	00014/00004/00330
added forcehostname hack
changed wording of notification message

D 1.7	97/04/21 19:43:11 tomiii	7 6	00002/00002/00332
lint fixes

D 1.6	97/04/18 09:44:20 tomiii	6 5	00008/00006/00326
previous delta was bogus

D 1.5	97/04/18 09:37:34 tomiii	5 4	00002/00002/00330
log debug messages only if -d specified

D 1.4	97/04/13 16:03:55 tomiii	4 3	00010/00000/00322
tell administrator to remove failed pages from the queue

D 1.3	97/04/13 01:35:29 tomiii	3 2	00128/00082/00194
fix lots and lots of brokeness

D 1.2	97/04/05 17:48:10 tomiii	2 1	00004/00000/00272
use administrator address (if defined) in the Reply-To: field

D 1.1	97/04/05 17:16:01 tomiii	1 0	00272/00000/00000
date and time created 97/04/05 17:16:01 by tomiii