File: ChangeLog

package info (click to toggle)
noffle 1.1.5-6
  • links: PTS
  • area: main
  • in suites: sarge
  • size: 1,080 kB
  • ctags: 944
  • sloc: ansic: 11,148; sh: 595; makefile: 195; lisp: 26
file content (1440 lines) | stat: -rw-r--r-- 65,707 bytes parent folder | download
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
1001
1002
1003
1004
1005
1006
1007
1008
1009
1010
1011
1012
1013
1014
1015
1016
1017
1018
1019
1020
1021
1022
1023
1024
1025
1026
1027
1028
1029
1030
1031
1032
1033
1034
1035
1036
1037
1038
1039
1040
1041
1042
1043
1044
1045
1046
1047
1048
1049
1050
1051
1052
1053
1054
1055
1056
1057
1058
1059
1060
1061
1062
1063
1064
1065
1066
1067
1068
1069
1070
1071
1072
1073
1074
1075
1076
1077
1078
1079
1080
1081
1082
1083
1084
1085
1086
1087
1088
1089
1090
1091
1092
1093
1094
1095
1096
1097
1098
1099
1100
1101
1102
1103
1104
1105
1106
1107
1108
1109
1110
1111
1112
1113
1114
1115
1116
1117
1118
1119
1120
1121
1122
1123
1124
1125
1126
1127
1128
1129
1130
1131
1132
1133
1134
1135
1136
1137
1138
1139
1140
1141
1142
1143
1144
1145
1146
1147
1148
1149
1150
1151
1152
1153
1154
1155
1156
1157
1158
1159
1160
1161
1162
1163
1164
1165
1166
1167
1168
1169
1170
1171
1172
1173
1174
1175
1176
1177
1178
1179
1180
1181
1182
1183
1184
1185
1186
1187
1188
1189
1190
1191
1192
1193
1194
1195
1196
1197
1198
1199
1200
1201
1202
1203
1204
1205
1206
1207
1208
1209
1210
1211
1212
1213
1214
1215
1216
1217
1218
1219
1220
1221
1222
1223
1224
1225
1226
1227
1228
1229
1230
1231
1232
1233
1234
1235
1236
1237
1238
1239
1240
1241
1242
1243
1244
1245
1246
1247
1248
1249
1250
1251
1252
1253
1254
1255
1256
1257
1258
1259
1260
1261
1262
1263
1264
1265
1266
1267
1268
1269
1270
1271
1272
1273
1274
1275
1276
1277
1278
1279
1280
1281
1282
1283
1284
1285
1286
1287
1288
1289
1290
1291
1292
1293
1294
1295
1296
1297
1298
1299
1300
1301
1302
1303
1304
1305
1306
1307
1308
1309
1310
1311
1312
1313
1314
1315
1316
1317
1318
1319
1320
1321
1322
1323
1324
1325
1326
1327
1328
1329
1330
1331
1332
1333
1334
1335
1336
1337
1338
1339
1340
1341
1342
1343
1344
1345
1346
1347
1348
1349
1350
1351
1352
1353
1354
1355
1356
1357
1358
1359
1360
1361
1362
1363
1364
1365
1366
1367
1368
1369
1370
1371
1372
1373
1374
1375
1376
1377
1378
1379
1380
1381
1382
1383
1384
1385
1386
1387
1388
1389
1390
1391
1392
1393
1394
1395
1396
1397
1398
1399
1400
1401
1402
1403
1404
1405
1406
1407
1408
1409
1410
1411
1412
1413
1414
1415
1416
1417
1418
1419
1420
1421
1422
1423
1424
1425
1426
1427
1428
1429
1430
1431
1432
1433
1434
1435
1436
1437
1438
1439
1440
Wed Jun 25 2003 Jim Hague <jim.hague@acm.org>

* src/protocol.c: Reading of long lines broken in Prt_getLn(). Fix and
  change to split long lines rather than truncate. Also change
  Prt_putTxtBuf() to work properly with long lines by removing all
  fixed buffer dependencies.
* configure.in: Bump version number to 1.1.5.
* Makefile.in,aclocal.m4,configure,docs/Makefile.in,packages/Makefile.in,
  packages/redhat/Makefile.in,src/Makefile.in: Autoconf updates.
* NEWS: Update for 1.1.5.
	
Fri Jun 20 2003 Jim Hague <jim.hague@acm.org>

* src/server.c: Remove debug log that was duplicating log entries
  made elsewhere.

Thu Jun 05 2003 Martin Godisch <martin@godisch.de>

* src/client.c: Fixed port range to make ports > 255 available and check
  for invalid ports < 0 and > 65535 functional.

Fri May 23 2003 Jim Hague <jim.hague@acm.org>

* docs/noffle.1,src/configure.h,src/configfile.c,src/noffle.c: Add optional
  "auth" parameter to '--server' option. This turns on client authorisation
  regardless of the setting of authenticate-client. Useful if you want the
  same Noffle to authenticate or not depending on what/how it gets invoked.

Thu May 22 2003 Jim Hague <jim.hague@acm.org>

* src/client.c: Return correct status from Client_postArt() and add
  function comment detailing what return code should be, because it's
  not obvious that the return code should report success when the
  posting failed for reasons other than connection problems. This should fix
  problem with failing posting stopping fetches. Thanks to Dan Jacobson
  for spotting this.
* src/client.c: Fix problemette with filter discards not updating remote
  group article count and so the overview being refetched until
  and article appears that doesn't fall foul of the filter and thus does
  update the remove group 'next article' marker. Thanks to Dan Jacobson
  for spotting this.
* src/content.c: Don't be fooled into thinking a filename starting ".."
  is just "..".
* src/outgoing.c: Don't assume "." and ".." are the first files returned
  from readdir(). Thanks to Andreas Happe for spotting this.
* src/noffle.c: Update online help to include 'm' group posting status.
* src/server.c: Move incorrect updating of server.grp in doGrp() which was
  causing doGrp() to not retrieve remote article details when in online
  mode. Thanks to Miernik and Andreas Happe for reporting the problem.

Thu Apr 03 2003 Jim Hague <jim.hague@acm.org>

* src/common.h,src/control.c,src/noffle.c,src/post.c: Find actual bug
  causing Debian #187068 and fix that.
* src/filter.c: Code should be #ifdef'd out, not commented out.
	
Tue Apr 01 2003 Martin Godisch <martin@godisch.de>

* src/post.c:
  Forward cancel control messages to parent NNTP servers,
  see Debian bug #187068.
* docs/noffle.1:
  Noted that option --cancel acts only locally.
* src/noffle.c:
  Removed cancel status message which appeared twice.

Sat Mar 22 2003 Johannes Madel <johannes.madel@gmx.de>

* src/post.c,src/configfile.c,src/configfile.h,docs/noffle.conf.5,
  noffle.conf.example,TODO: Added a config value to specify whether
  a Reply-To header should be appended to messages posted without it.
  Also made the new option show up in the noffle.conf manpage and the
  initial example configuration shipped with the package.

Wed Feb 26 2003 Jim Hague <jim.hague@acm.org>

* src/client.c,src/group.c: Reunite forbidden group comment with code, and
  revise forbidden rules to allow single component names except for some
  specific ones.
	
Fri Feb 21 2003 Jim Hague <jim.hague@acm.org>

* src/noffle.c: Give usage (rather than abort()) if option is unrecognised.
* src/content.c: Tighten up checks when accessing content vector.

Mon Feb 17 2003 Martin Godisch <martin@godisch.de>

* src/noffle.c: Added logging when fetching news started/finished.
  See Debian bug #181320.

Thu Feb 13 2003 Jim Hague <jim.hague@acm.org>

* src/database.c: Accept articles with no body, substituting a body of a
  single empty line. Also cast a scanf parameter to remove warning.
	
Wed Feb 12 2003 Jim Hague <jim.hague@acm.org>

* NEWS,configure,configure.in,packages/redhat/noffle.spec: Update for 1.1.4.

Mon Feb 10 2003 Jim Hague <jim.hague@acm.org>

* src/client.c: Fix horror in authentication.

Fri Jan 31 2003 Jim Hague <jim.hague@acm.org>

* docs/noffle.1: Add 'news admin only' to affected options.
* TODO: Add items from Debian wishlist.
* src/util.c: Add cast to deal with compiler warning.
* NEWS,configure.in,packages/redhat/noffle.spec: Update for 1.1.3.
	
Thu Jan 30 2003 Jim Hague <jim.hague@acm.org>

* docs/noffle.1,src/outgoing.c,src/noffle.c: Added -O/--outgoing
  option to list articles waiting to be posted upstream. Modified
  Out_next() to return message ID if possible, regardless of whether
  article text was requested as well.
	
Tue Jan 28 2003 Jim Hague <jim.hague@acm.org>

* TODO: Add 'retry lost connections' item.

Sun Jan 12 2003 Jim Hague <jim.hague@acm.org>

* src/authenticate.c: Extend news admins to all those in group news.
	
Sat Jan 11 2003 Jim Hague <jim.hague@acm.org>

* docs/noffle.1,docs/noffle.conf.5: Correct footer date, add new RFCs,
  update Markus's email again.
* docs/noffle.conf.5,src/configfile.c: Only recognise authenticate-client
  config if authentication of one or other sort is built in.
* TODO: Update.
	
Fri Jan 10 2003 Jim Hague <jim.hague@acm.org>

* docs/noffle.1: Correct Noffle home page location and add Mirko as author.
  Also update Markus's email. Debian bug 173743.
* AUTHORS. Great maintainer I am, can't even credit myself.
* src/fetch.c: Add Reply-To to the front of the list of headers searched
  for the article author's email when sending posting SNAFU message.
  Debian bug 156952.
* src/configfile.h,src/configfile.c,docs/noffle.conf.5: Add noffle-user
  and noffle-group configs.
* src/configfile.c,src/fetch.c,src/fetchlist.c,src/protocol.c,
  src/server.c: Replace strcpy() with Utl_cpyStr() where appropriate.
  See Debian bug 168128.
* src/client.c. Replace strcpy() here too.
* src/control.c,src/configfile.c,src/noffle.c: Replace [s]scanf("%s")
  with [s]scanf(MAXCHAR_FMT).
* Makefile.am: Install executable owner news.news mode 06755. Install
  sample noffle.conf as 0640 news.news.
* src/noffle.c: Log warning if noffle.conf is world readable.
* src/noffle.c: Restrict most options to news admins; i.e. those who
  are root or news on running Noffle.
* src/configfile.c: Change snprintf() to Utl_cpyStr();
* Makefile.in,acconfig.h,aclocal.m4,config.h.in,configure,configure.in,
  docs/Makefile.in,docs/noffle.conf.5,packages/Makefile.in,
  packages/redhat/Makefile.in,src/Makefile.am,src/Makefile.in,
  src/authenticate.c,src/authenticate.h,src/noffle.c,src/server.c:
  Add basic authentication using either Noffle-specific user file
  or authenticating via PAM (service 'noffle'). PAM authentication
  needs to run as root, so a Noffle server that needs PAM
  must be started by root. Helpful (?) error messages will be logged
  if not. Noffle will switch ruid and euid to 'news' (or whatever
  is configured) ASAP.
* src/noffle.c: Add uid checking.
* src/noffle.c: Set umask(022) on startup.
 
Mon Jan 6 2003 Jim Hague <jim.hague@acm.org>

* src/database.c,src/post.c,src/protocol.h,src/protocol.c: When posting,
  check the article for those headers that are specified in section
  5 of the IETF draft and ensure they only occur once.
* src/post.c: Clean up a conditional.
	
Fri Dec 27 2002 Jim Hague <jim.hague@acm.org>

* src/log.c,src/log.h: Add Log_fatal() for reporting fatal errors
  and exiting, Log_gdbm_fatal() for the the same but specifically as
  a GDBM error reporting function, and a new log debug level AUTH for
  a forthcoming authentication mechanism.
* src/database.c,src/group.c: Provide new gdbm error function to all
  gdbm opens.
* src/noffle.c: Add atexit() to always close databases on a program-
  inspired exit.
* src/content.c,src/dynamicstring.c,src/fetchlist.c,src/filter.c,
  src/itemlist.c,src/log.c,src/log.h,src/over.c,src/protocol.h,
  src/request.c,src/util.c: Use Log_fatal where appropriate.
	
Tue Dec 24 2002 Jim Hague <jim.hague@acm.org>

* src/client.c: doGetGrps() was supposed to fall back to "LIST" if
  "LIST ACTIVE" wasn't recognised. However, it would only do this
  if a group pattern was given, which was downright wrong. Now
  fixed.
	
Sun Nov 17 2002 Jim Hague <jim.hague@acm.org>

* src/util.c: localTimeDiff() cached its value and recalculated it every
  hour of clock time, regardless of the time the calculated was based on.
  This is potentially dangerous at daylight saving changes. So instead
  use the cached last result only when the new request is to be based on
  a time in the same hour as the cached result.
* src/util.c: Replace the alternate Utl_mktimeGMT() implementation used when
  timegm() is not available. The previous version, as suggested by the
  glibc timegm() man page, used setenv() and unsetenv() for changing the
  environment. These aren't POSIX functions, and the POSIX putenv()
  (a) is tricky to manage if the same var is being constantly update and
  memory isn't to leak, and (b) provides no way to remove an environment
  entry. So change to an implementation Wget uses. This should compile on
  not glibc systems - the previous version failed to build on Solaris.
	
Sun Nov 10 2002 Jim Hague <jim.hague@acm.org>

* src/client.c,src/fetch.c,src/lock.c.src/protocol.c,src/util.h,src/util.c:
  Define our own SignalHandler type rather than use the rather
  Linux-specific (and potentially glibc version specific) sig_t.
* src/client.c,src/database.h,src/database.c,src/over.h,src/over.c,
  src/pseudo.c,src/server.c: Ensure format string specifiers and passed
  data types match. As part of this, change some uses of size_t as a
  general data type to an appropriate base C type. Database status changes
  from int to unsigned.
* src/noffle.c: Rearrange initialisation so that a requested usage
  message will be output before Noffle can fail due to misconfiguration.
  Introduce routine (currently stub) for checking file ownership and
  permissions on startup - I suspect a lot of reported errors are due
  to ownership problems.
* configure.in: Remove '-ansi' and '-Wtraditional'. We use functions
  that aren't strict ANSI, and I'm not interested in warnings about
  usage differences between ANSI and K&R.
* Makefile.in,aclocal.m4,config.h.in,configure,src/Makefile.in:
  Regenerate after configure.in change. With all the above in, we now
  compile cleanly on Cygwin with GCC 3.2, except for a warning about
  printing a time_t with a %ld format. This will serve as a reminder that
  we assume time_t is the same size as a long.
* src/configfile.c: #include <regex.h> requires sys/types.h be included first.
* src/fetch.c,src/log.c: Make 'fetch' and 'log' variables static; they're
  not used outside their respective modules and cause a name clash on
  MacOS X.
* configure.in: Add optional GDBM include and lib directory specifiers.

Tue Oct 25 2002 Jim Hague <jim.hague@acm.org>

* src/server.c: Fix post 1.0 bug where the article cursor was lost if the
  server yielded the lock to another server.
	
Tue Oct 8 2002 Jim Hague <jim.hague@acm.org>

* src/client.c: Fix old bug in readField() where the last field in a line
  would not terminate the buffer properly if the line ended with \0. This
  could in practice lead to rubbish in the Lines: field, with extra
  numerals from the preceding Bytes: field being added.

Mon Aug 5 2002 Jim Hague <jim.hague@acm.org>

* INSTALL,README,docs/FAQ: Remove online mode from introductory documentation.
  It causes confusion. Add it to FAQ list.
* configure, configure.in: Correct --enable-debug handling. Don't add
  -DDEBUG flag to the build line on non-debug builds.
* docs/noffle.lsm: Update
* src/group.c: Explicitly disallow zero-length group names. Yes, I found one.
* src/server.c: Correctly implement LISTGROUP when the optional group name
  parameter is omitted.
	
Thu Jul 4 2002 Jim Hague <jim.hague@acm.org>

* docs/NOTES: Add note on Slypheed.
* aclocal.m4: aclocal upgrade.

Wed Jun 26 2002 Jim Hague <jim.hague@acm.org>

* Makefile.in,docs/Makefile.in,packages/Makefile.in,
  packages/redhat/Makefile.in,src/Makefile.in: automake upgrade.
* src/database.c: DB_compact() now does nothing. It was calling
  gdbm_reorganize() which did rebuild on the database, copying it
  to a new database and renaming. This now has an explicit function,
  Db_rebuild(), and you don't want to chew disc space like this during
  a routine expire.
* config.h.in,configure,configure.in: Check for timegm().
* src/server.c,src/util.c,src/util.h: Recognise GMT/UTC on NNTP NEWGROUPS.
  Do small reorg of some of the timezone sensitive code, and introduce
  use of timegm(). An implementation is provided for systems without
  timegm().

Wed Jun 26 2002 Jim Hague <jim.hague@acm.org>

* aclocal.m4: New aclocal version.
* Makefile.in,docs/Makefile.in: Update to reflect last changes to
  Makefile.am(s). Oops.
* configure,configure.in: Add -DDEBUG to build lines when configured
  with enable-debug.
* docs/noffle.1,src/Makefile.am,src/Makefile.in,src/content.c,
  src/content.h,src/database.c,src/database.h,src/expire.c,
  src/expire.h,src/noffle.c: Split out expire code from database.c,
  change to remove articles in place (rather than rebuild article
  database) and add separate command to rebuild article database
  from articles listed in overviews. This may help if the article
  database gets corrupted.
* src/protocol.c: Change strcpy to Utl_strcpy and replace ascii check
  with isascii().

Wed Jun 5 2002 Mirko Li <mirko.liss@web.de>

* src/group.c,src/client.c,src/noffle.c: rename Grp_isValidGroupname
  to Grp_isValidName; create Grp_isForbiddenName(); delete
  client.c:isForbiddenGroupName(). I should be have done it
  the right way from the beginning.
* src/protocol.c:Prt_getLn(): Skip line if connection to server
  lost before end of line. Prt_getLn() used to return incomplete
  lines.
* src/common.h,src/client.c: Replace sscanf() format "%s" by
  MAXCHAR_FMT. 
* src/client.c: Get each line of grouplist in processGrps(), don't
  collect the whole list beforehand.

Tue May 14 2002 Mirko Li <mirko.liss@web.de>

* src/configfile.c,src/filter.c,src/filter.h,src/fetch.c,src/noffle.c,
  noffle.conf.example,docs/noffle.conf.5: Added new filter rules
  'reference=regex', 'older=lastupdate-3', 'date=invalid', 'newer=now+1.5'.
* src/group.c:Grp_isValidGroupName(): discard the groups 'poster', 'junk',
  and the hierarchies 'to', 'control', 'ctl','example', '+', '-'.
* src/protocol.c: Allow hostname=%name@dom.ain to generate MsgIds like
  <localpart%name@dom.ain>. The '@' sign will only be added if there's
  no '@' present in the hostname.
* src/protocol.c:Prt_genFromHdr(): Replace the oldfashioned From:-Header
  content 'pwname@domain (Name)' by '"Name" <pwname@domain>'.
* src/request.c:storeMsgId(): check of realloc() result added.


Tue Mar 26 2002 Mirko Li <mirko.liss@web.de>

* src/database.c,src/protocol.c,src/post.c: Handle header line folding
  in postings and database. Noffle 1.0.1 doesn't understand folded headers
  and reports: "Entry in database '<msgid>' is corrupt (anything)".

Fri Mar 15 2002 Jim Hague <jim.hague@acm.org>

* src/database.c,src/protocol.c,src/util.c,src/util.h: The latest IETF
  article format draft draft-ietf-usefor-article-06.txt recommends that
  Xref: references contain the FQDN of the server. We were using the
  host name without the domain. So split the routine used for obtaining
  the FQDN from protocol.c into util.c, and use it when adding Xrefs.
* src/group.c: Make comparison against NULL explicit in an if containing
  an assignment, as I'm sad enough to think it is safer if it is obvious
  that the assignment is meant to be there.
* Makefile.am,docs/Makefile.am,packages/redhat/noffle.spec,
  packages/redhat/noffle-xinetd: Update RPM spec file for RH7.2. Fix up
  'make install' to work properly with 'make install DESTDIR=nnnn' to
  enable 'make install' use in spec file. Convert from inetd to xinetd.
* aclocal.m4,configure.in,configure: Bump version to 1.1.2 & re-run
  aclocal/autoconf.
* NEWS: Updates for 1.1.2.	

Wed Mar 13 2002 Mirko Li <mirko.liss@web.de>

* src/server.c: While in online mode, new fetched articles returned
  the old headers from the overview. Spotted by Mardy.

Tue Feb 26 2002 Jim Hague <jim.hague@acm.org>

* src/client.c: That wasn't a memory leak fixed on Feb 8th. That was a
  cockup cause by my forgetting that Cont_app takes ownership of an
  overview. Revert it and add comment to Cont_app. Spotted with the aid
  of valgrind.
* src/post.c,src/pseudo.c
* src/util.c: Fix out of bounds write bug spotted by valgrind.
* src/database.c: Fix minor memory leak spotted by valgrind.
  Valgrind is at http://devel-home.kde.org/~sewardj/.
	
Thu Feb 14 2002 Jim Hague <jim.hague@acm.org>

* src/over.c: Fix warning.
* src/fetchlist.h,src/fetchlist.c,src/noffle.c: Provide fetchmode for
  groups on fetchlist.
* src/server.c: When fetching overviews online from groups on the fetchlist,
  fetch them in the appropriate fetch mode for the group. E.g. if group
  mode is FULL, fetch overviews and put all articles on articles required
  list to be fetched on the next noffle --fetch.
* packages/redhat/noffle.spec: Incorporate changes from Carles Arjona.
	
Fri Feb 8 2002 Jim Hague <jim.hague@acm.org>

* docs/noffle.conf.5: Correct typo in From: filter description.
* src/client.c: Fix memory leak in filter code.
* src/fetchlist.c: Write fetchlist to new file and update if written
  correctly. Stops fetchlist being trashed on disc full. Also add
  fetchlist dirty flag to save unnecessary rewrites.
	
Wed Dec 19 2001 Mirko Li <mirko.liss@web.de>

* src/over.c: Convert tabs to spaces to prevent corruption of overview
  files (see rfc2980 chapter 2.8).

Tue Dec 18 2001 Mirko Li <mirko.liss@web.de>

* src/group.c,src/group.h,src/noffle.c,src/client.c: Add Grp_isValidGroupName
  to prevent  noffle -C ../fetchlist; noffle -D ../fetchlist
  and similar dirty stuff.
* src/content.c: Fixed expiration of temporary filenames in overview.
  Sorry.

Sun Dec 9 2001 Jim Hague <jim.hague@acm.org>

* docs/Makefile.in: Add testing.txt to documents.
* NEWS: Updates for 1.1.1 release.	
* configure.in: Change version to 1.1.1. Additional decoration to the
  version is slowing down my release and RPM building. All Makefile.in
  have been regenerated as has configure.
* packages/redhat/noffle.spec: Change version to 1.1.1.
* packages/.cvsignore,packages/Makefile.am,packages/redhat/.cvsignore,
  packages/redhat/Makefile.am: Add sufficient makefiles for noffle.spec
  and noffle-expire to the included in the tarball generated by 'make dist'.
	
Sun Dec 9 2001 Jim Hague <jim.hague@acm.org>

* src/util.c: Improve (correct) error detection when updating
  timestamp file.
* src/content.h, src/content.c: Return Boolean success/fail from
  Cont_write. Also ensure cont.first isn't polluted in the event
  of a failed update.
* src/client.c,src/control.c,src/fetch.c,src/noffle.c,src/post.c,
  src/pseudo.c: If Cont_write fails, don't do subsequent actions that
  rely on it having worked. Typically this will be updating the
  first/last article nos in the group database.
* src/post.c: Gather article initialisation into one place for clarity.	
* src/server.c: If groupinfo.lastupdate is unreadable or corrupt,
  spot this and report it and give an explicit error when processing
  NNTP NEWGROUPS command.

Sun Dec 9 2001 Jim Hague <jim.hague@acm.org>

* src/post.c: Always replace message ID in posted message if existing
  message ID fails Prt_isValidMsgId.
* noffle.conf.example,docs/noffle.conf.5,src/configfile.c: Change
  replace-messageid default from 'yes' to 'no'. These days bad message
  IDs from newsreaders shouldn't happen (or should be more easily fixable
  from the newsreader config), and replacing message IDs causes havoc if
  you're gatewaying mailing lists or similar.

Sun Dec 2 2001 Mirko Li <mirko.liss@web.de>

* src/protocol.c: Use pid and count to generate MsgIDs, not random number.

Thu Nov 29 2001 Jim Hague <jim.hague@acm.org>

* src/content.c: Remove spurious temporary files and add a closedir()
  to terminate opendir()/readdir() sequence properly.
* Updated NEWS ready for 1.1.1.	
	
Thu Nov 22 2001 Jim Hague <jim.hague@acm.org>

* Makefile.in,aclocal.m4,config.h.in,configure,configure.in
  docs/Makefile.in,src/Makefile.in: Regularise format of Noffle
  default parameters in configure.in and regenerate.
* src/content.c,src/noffle.c: Correct bugfix in Conf_write().
  Remove temporary file expiry, but skip temp files in
  Cont_nextGrp().
	
Thu Nov 22 2001 Mirko Li <mirko.liss@web.de>

* src/noffle.c: expireContents() expires overview temporary files.
* src/content.c: minor bugfix in Conf_write()
* docs/noffle.conf.5,src/configfile.c,src/filter.[ch]:
  Added filter post-status=mod|yes|no. Only the current group
  will be checked.
* src/client.c: Bugfix at processGrps(). Local groups are now always
  preferential. They won't change to an upstream server.

Wed Nov 14 2001 Mirko Li <mirko.liss@web.de>

* src/noffle.c,docs/noffle.1: added optional pattern to select previously
  configured upstream server with 'noffle --fetch' and 'noffle --query'.

Tue Nov  6 2001 Jim Hague <jim.hague@acm.org>

* TODO: Update the TODO list.
* src/util.c: When updating timestamp files, write new stamp to temp file
  and rename, so failure with e.g. full disc doesn't leave an empty stamp
  file.
	
Sun Nov 11 2001 Mirko Li <mirko.liss@web.de>

* src.util.c: Minor fix at Utl_parseNewsDate(); fixed SIGSEGV at
  Utl_getHeaderLn(). Header size limit still much too low.
* docs/testing.txt: How to set up a testbench for noffle. Useless
  for most developers, but useful for beginners.

Thu Nov  8 2001 Mirko Li <mirko.liss@web.de>

* Makefile.am,Makefile.in: Minor fix I haven't previously included.
  The new --with-configfile option depends on it.
* docs/NOTES: Minor enhancement to slrn-script. Now it marks incomplete
  articles as unread.

Tue Nov  6 2001 Jim Hague <jim.hague@acm.org>

* packages/redhat/noffle.spec: Update to version to 1.1-1 and fix up some
  items causing RPM3 vs RPM4 problems.
* configure,configure.in: Bump version to 1.1.1-unstable-develop, and add
  --with-spooldir and --with-configfile options (idea due to Mirko Liss).
	
Wed Oct 31 2001 Jim Hague <jim.hague@acm.org>

* AUTHORS,INSTALL,NEWS,README,TODO,docs/NOTES,src/client.c,src/protocol.c,
  src/protocol.h,src/server.c: Merge with latest 1.0 branch. I do not
  intend to do any further merges from the 1.0 branch; future changes to
  1.0 should be carried over by hand if necessary.
* src/configfile.c,src/content.c,src/control.c,src/database.c,
  src/dynamicstring.c,src/fetch.c,src/filter.c,src/group.c,
  src/itemlist.c,src/lock.c,src/outgoing.c,src/over.c,src/post.c,
  src/pseudo.c,src/request.c,src/util.c: Minor includes rearrangement.
	
Tue Oct 30 2001 Jim Hague <jim.hague@acm.org>

* src/content.c: When generating temp file to write new content to, make
  sure there is no possibility of a name clash with an existing file.
  Bug spotted by Mirko Liss.

Tue Oct 30 2001 Jim Hague <jim.hague@acm.org>

* noffle.conf.example,docs/noffle.conf.5,src/configfile.h,src/configfile.c,
  src/protocol.c: Add new config item 'hostname' to specify the part after
  the @ in message IDs generated by Noffle. Patch submitted by Mirko Liss.
	
Tue Oct 30 2001 Jim Hague <jim.hague@acm.org>

* docs/noffle.conf.5,src/configfile.c,src/filter.h,src/filter.c:
  Contrary to the documentation, the action of a filter if not specified
  was 'full'. Add a new 'default' action which makes the action that of the
  group's subscription mode. Make this the default action, and allow
  'default' to be specified explicitly as the action in the filter
  definition. Adapted from patch submitted by Mirko Liss. Thanks, Mirko.
* docs/noffle.conf.5: Correct small typo.
	
Mon Oct 22 2001 Jim Hague <jim.hague@acm.org>

* src/fetch.c: Only leave articles in the requested list if the error
  fetching them was fatal. Otherwise article requests will accumulate
  indefinitely (e.g retrieving through NNTPcache when it can't find
  the body of an article, now or event. Yes, this happened to me; I
  had nearly 2000 requests backed up and never being cleared).
* src/group.c: The weekend's change introduced code that causes a bus
  error on Sparc ( *(time_t *)p = xxx ). Replace with a safe memcpy,
  and also use memcpy when reading the Entry and time items to remove
  warnings on Sparc compilation.
	
Sun Oct 21 2001 Jim Hague <jim.hague@acm.org>

* docs/noffle.conf.5,src/noffle.c: Duh! Do unsubscribing the simple way.
  Auto-unsubscribe when the last access time is more than the threshold
  number of days behind the time the last article arrived.
	
Sat Oct 20 2001 Jim Hague <jim.hague@acm.org>

* src/group.h,src/group.c,src/noffle.c,src/server.c: Grp_setLastAccess is
  only ever called with last param as time(NULL), so remove it and call
  time() inside the implementation of Grp_setLastAccess.
* src/client.c,src/group.h,src/group.c,src/noffle.c,src/post.c: Groups are
  automatically unsubscribed when the last access to the group is older
  than a particular threshold. However, for very low traffic groups, the
  last access may exceed the threshold simply because there has been no new
  article posted. In this case, rather than unsubscribe, update the group
  last access time. This means that groups are now only unsubscribed if
  the last access exceeds the threshold AND articles have arrived in the
  group since. Add Grp_setLastPostTime() to track the last time an article
  arrived in the group.

Fri Oct 05 2001 Markus Enzenberger <me@markus-enzenberger.de>

* src/configfile.c: fix bug with missing initialization of user name and passwd

Wed Sep 12 2001 Jim Hague <jim.hague@acm.org>

* src/client.c,src/client.h,src/fetch.c,src/noffle.c,src/server.c:
  robustness - instead of returning simple Passed/Failed statuses from
  connection functions, return an integer status instead. This allows
  Noffle to distinguish between a connection failure, an unrecoverable
  protocol error and a recoverable problem. As a concrete instance, Noffle
  will no longer abort the connection if a group is removed from the
  upstream server. Also beef up error detection a bit.
* src/content.c: instead of overwriting the existing content file(s) when
  updating - which leaves a window where Noffle is vulnerable to failure
  which will leave the content file corrupted (yes, it happened to me),
  write a new content file and rename it over the old file only when it
  has been written and closed with no errors reported.
	
Sat Sep 01 2001 Markus Enzenberger <me@markus-enzenberger.de>

* src/client.c,src/protocol.h: perform authentication at connect time,
  accept new and deprecated authentication status codes.

Sun Aug  5 2001 Jim Hague <jim.hague@acm.org>

* src/client.c: Change variable only used on constant to 'const'.
* src/filter.c: Add a couple of 'return's after ASSERT() to remove
  compiler warnings about functions needing returns.
* NEWS,TODO,configure,configure.in,noffle.conf.example,docs/NOTES,
  docs/noffle.conf.5,src/client.c,src/configfile.c,src/content.c,
  src/control.c,src/database.c,src/fetch.c,src/fetchlist.c,src/filter.c,
  src/group.c,src/lock.c,src/log.c,src/log.h,src/noffle.c,src/outgoing.c,
  src/post.c,src/protocol.c,src/request.c,src/server.c,src/util.c:
  Debug logging is always compiled and selected via noffle.conf. All debug
  logs are classified as all, none, config, control, expire, fetch,
  filter, newsbase, noffle, post, protocol, requests and server.
* src/util.c: Remove case sensitivity in date parsing.

Tue May 15 2001 Jim Hague <jim.hague@acm.org>

 * src/client.c: Only bail out of fetching multiple articles if the
   connection fails. If we do get a status from the upstream server
   note it and see what is reported for the next article. Otherwise
   failure to retrieve one article will cause all successive article
   fetches to fail even through they would succeed if tried.
 * src/lock.c: Fix assert in lazy locking. If another noffle signalled us
   to release the lock at the next close, and then repeats the signal so that
   it arrives during LOCK_closeDatabases, the signal handler was trying
   to close the databases again.
	
Thu May 10 2001 Jim Hague <jim.hague@acm.org>

 * src/client.c: Only return failure getting NEWGROUPS if the connection
   failed. If the server doesn't implement NEWGROUPS correctly (step
   forward elderly versions of NNTPcache) it isn't fatal to the
   fetch process. You can still do a 'noffle --query groups' to update
   your newsgroup list.
 * src/server.c: Correct error code given when article requested by
   message ID is not found. Previously the code given (423) was the same
   as for when an article requested by its number in a group was not
   found. The docs (and various NNTP servers) say 430 should be returned.
   Thanks to Alberto Mardegan <amardegan@iol.it> for spotting that.

Wed May  9 2001 Jim Hague <jim.hague@acm.org>

 * TODO,src/client.c,src/client.h,src/fetch.c,src/fetch.h,src/noffle.c:
   Improve error checking during fetches. A fetch is now aborted immediately
   if the connection times out or if an unexpected response arrives.
   This should fix problems with articles appearing in the wrong group,
   and possibly other mysterious happenings.
	
Tue May  8 2001 Jim Hague <jim.hague@acm.org>

 * src/post.c: If post-locally is set, only do immediate local posting
   on groups with status 'y'. We don't want to post locally articles
   destined for the moderator of a moderated group.
	
Tue May 01 2001 Markus Enzenberger <me@markus-enzenberger.de>

 * src/server.c: do not search all groups if group does not
   exist and contains no wildcards
 * AUTHORS: update my email address
 * configure.in,configure: changed version to 1.1-unstable-develop

Tue Mar 13 2001 Markus Enzenberger <me@markus-enzenberger.de>

 * src/client.c: Fix bug. Server name was not yet initialized
   if server required authentication at connect time.

Wed Feb 28 2001 Markus Enzenberger <me@markus-enzenberger.de>

 * src/database.c: fix missing argument to snprintf

Sun Feb 26 2001 Matija Nalis <mnalis-sf@voyager.hr>

 * fix for small glitches in options parting in src/noffle.c

Sun Feb 25 2001 Jim Hague <jim.hague@acm.org>

 * TODO,content.c,lock.c,server.c,server.h: Remove bug notice re:
   need to do a Cont_write on Lock_closeDatabases in case of unwritten
   content changes when releasing the lock. Update content to keep dirty
   flag and avoid unnecessary writes, and lock to signal server to re-read
   its group content info after the lock is released. Do NOT write content
   info on Lock_close if dirty, as the placeholder article in unsubscribed
   groups is currently done by adding it to the content when joining the
   group and deliberately not saving it unless another content modification
   takes place and thus causes the content to be saved.

Thu Jan 25 2001 Jim Hague <jim.hague@acm.org>

 * src/client.c,src/protocol.c,src/util.h,src/util.c: Common up
   repeated signal handler setting code into Utl_installSignalHandler.
 * src/client.c: Ensure Client_retrieveArt always exits with the global
   lock held. Previously it would be held on error, not held if OK.
 * src/lock.h,src/lock.c,src/noffle.c: Add lazy lock release. Only release
   the lock and close the databases if (a) another process signals us
   SIGUSR1 indicating it wants the lock, or (b) it is explicitly requested by
   a call to new function Lock_syncDatabases(). When waiting for the lock,
   SIGUSR1 the holding process every second. This is all an attempt to
   minimise the number of times we need to close and open the database.
   When (ha!) the database is replaced by something that can handle
   multiple simultaneous writers (with appropriate locking) this won't
   be necessary.

Fri Dec 29 2000 Markus Enzenberger <markus.enzenberger@t-online.de>

 * src/server.c: apply bug-fix for lazy group loading by Matija Nalis 
 * TODO: Add handling of connection breakdown during a fetch to later
   section.

Fri Dec 22 2000 Markus Enzenberger <markus.enzenberger@t-online.de>

 * AUTHORS: add Matija Nalis

Sun Dec 10 2000 Markus Enzenberger <markus.enzenberger@t-online.de>

 * src/client.c: Extract common code from putCmd and putCmdNoFlush,
   reset client.lastStat when sending new command

Tue Dec 05 2000 Markus Enzenberger <markus.enzenberger@t-online.de>

    * src/fetch.c,src/Makefile.in: use sendmail instead of mail

    * src/fetch.c,src/pseudo.c,src/pseudo.h,src/server.c: applied
    patch from Matija Nalis: better handling of inconsistent counters
    at remote server; do not read overview on each group command

Thu Oct 26 21:42:45 BST 2000 Jim Hague <jim.hague@acm.org>

 * src/protocol.c: Fix bug in Prt_getLn if we should read a line
   starting with '\0' - according to the leafnode mailing list,
   this has been seen in the wild.
 * docs/inews.1,docs/noffle.1,docs/noffle.conf.5,
   packages/redhat/noffle.spec,src/configfile.h,src/configfile.c,
   src/noffle.c,src/post.h,src/post.c: Removed use of getopt_long,
   and added inews mode - the Noffle executable behaves
   as inews if invoked as inews. This includes adding From: and
   Organization: headers if necessary - add configs to override
   defaults for the From: domain and specify the organization.
   For all my fellow trn-heads out there, and users of any other
   ageing newsreader that expects inews. Updated RPM spec to create 
   inews link to noffle on install.
 * src/server.c: When replying to a command, generate the reply into
   a buffer, release the lock and then send the reply, so we don't
   hog the lock should the reply stall for some network reason.

Sun Oct 15 2000 Markus Enzenberger <markus.enzenberger@t-online.de>

 * acconfig.h,config.h.in,configure.in,src/Makefile.in,src/fetch.c:
   Applied patch by Paul Slootman: using the mail program is
   replaced by sendmail (SENDMAILPROG variable).

Sun Sep 10 2000 Markus Enzenberger <markus.enzenberger@t-online.de>

 * docs/NOTES: Added section about Gravity (thanks to
   Tomislav Filipcic <tfilip@jagor.srce.hr>).

Sun Sep 10 2000 Markus Enzenberger <markus.enzenberger@t-online.de>

 * src/Makefile.am: Added filter.c, filter.h
 * src/fetch.c: Fixed a bug in Fetch_init, that triggered
   an assertion if connection to remote server failed.

Sat Sep 02 2000 Markus Enzenberger <markus.enzenberger@t-online.de>

 * NEWS,src/client.c,src/protocol.c,src/protocol.h,src/server.c:
   Added timeout to Prt_getLn to avoid Noffle hanging if the
   connection breaks down during a fetch.

Wed Aug 23 2000 Markus Enzenberger <markus.enzenberger@t-online.de>

 * src/post.c: do no longer always replace invalid message-IDs.

Wed Aug 16 00:03:50 BST 2000 Jim Hague <jim.hague@acm.org>

 * Permit 'k' and 'm' suffices after numbers in filter rules.
 
Fri Aug 11 2000 Markus Enzenberger <markus.enzenberger@t-online.de>

 * src/noffle.c: Minor bug fix. Noffle no longer tries to unsubscribe groups
   that are already unsubscribed.

Wed Aug  9 22:02:21 BST 2000 Jim Hague <jim.hague@acm.org>

 * src/client.c: Use plain LIST instead of LIST ACTIVE if possible
   for compatability with old servers.
 * src/client.c,src/fetch.c: Fix fetching bugs that could potentially
   have left the lock in the wrong state.
 * docs/noffle.conf.5,src/Makefile.in,src/client.c,src/configfile.c,
   noffle.conf.example: Add first-cut article filtering. Note you will
   need to run 'configure' again to re-generate src/Makefile.
	
Wed Jul 26 2000 Markus Enzenberger <markus.enzenberger@t-online.de>

 * Released version 1.0pre7

Tue Jul 25 2000 Markus Enzenberger <markus.enzenberger@t-online.de>

 * src/client.c: Added GMT to NEWGROUPS command.

Mon 24 Jul 20:30:05 BST 2000 Jim Hague <jim.hague@acm.org>

 * src/database.h,src/database.c,src/server.c: Redo XHDR and
   XPAT to handle 'XHDR <msgid>' and 'XPAT <msgid>'. Common up
   code shared by XHDR and XPAT.
 * src/server.c,packages/redhat/noffle.spec: Remove pipe through
   sort(1) in printGroups() and dependency on textutil(RedHat)/
   textutils(SuSE) packages in RPM. The RPM now works on RedHat
   and derivatives and SuSE.
 * src/server.c: Release lock while collecting POST article and while
   reporting XOVER x-y results.
 * src/server.c: Update group 'last accessed' timestamp when XOVER read.
   This for smooth working with 'trn' and other newsreaders that only
   read the XOVER unless an article read. I have newsgroups I want to scan
   but only infrequently read an article - I don't want them getting
   unsubscribed.
 * src/server.c: Change server read timeout to 2 secs, release the lock
   if we'v held it for 2 secs so we don't starve anybody else, and
   if reading a command when we don't hold the lock don't use timeout.
 * src/util.c: Fix Utl_newsDate and Utl_parseNewsDateto work properly
   in all timezones.
 * src/lock.h,src/lock.c,src/noffle.c: Add 'fetch' lock to main lock,
   add Lock_gotLock() so we can test the main lock state (currently used
   only in ASSERTs). Fetch lock can be obtained WAIT or NOWAIT - latter
   fails immediately if lock not available.
 * src/client.c,src/fetch.c,src/noffle.c: Change lock handling during a fetch.
   Begin by obtaining 'fetch' lock - if busy, exit fetch immediately with
   error message. Then during fetch release the lock except when processing
   received data; in cases when incoming data is multi-line, collect all
   data first and then process. The aim is to ensure the lock isn't held
   with a network operation is in progress. I may carry on and extend this
   to all server operations as well (so a slow client can't hog the lock).
 * docs/noffle.conf.5,src/configfile.h,src/configfile.c,src/post.c,
   src/protocol.h,src/protocol.c: Add Path: header to newly posted
   articles. Provide default content - path-header in config overrides.
	
Sat Jul 22 2000 Markus Enzenberger <markus.enzenberger@t-online.de>

 * doc/NOTES: Removed section about GNUS hanging. It was caused
   by the "select" bug in Noffle.

Sat Jul 22 2000 Markus Enzenberger <markus.enzenberger@t-online.de>

 * src/server.c, src/protocol.c: Fixed a critical bug. "select" cannot
   be used with buffered stdio. This caused Noffle to hang with some
   readers (like tin).
	
Sat Jul 22 2000 Markus Enzenberger <markus.enzenberger@t-online.de> 

 * request.c: Applied patch from M.Nalis:
   Modify Req_add() to append to requested/news.serv.er file each MsgID (and
   do not clean dirty flag, because otherwise writeRequestfile() would nuke us
   when overwriting file!).

Wed Jul 19 2000 Markus Enzenberger <markus.enzenberger@t-online.de>

 * Applied patch from M.Nalis for fixing a small problem with
   the printed counters while fetching articles. 

Wed Jul 19 2000 Markus Enzenberger <markus.enzenberger@t-online.de>

 * Do not acquire global lock for printing help

Mon Jul 17 11:19:06 BST 2000 Jim Hague <jim.hague@acm.org>

 * src/client.h,src/client.c,src/noffle.c,docs/noffle.1: Remove
   '--query times' option. Creation time should always be time of
   creation on local server.
 * src/group.h,src/group.c: Remove Grp_setCreated().
	
Fri Jul 14 2000 Matija Nalis <mnalis-sf@voyager.hr>

 * Added counter for --fetch so one can see how much it is until the
   end of the transfer.

Fri Jul 14 15:20:14 BST 2000 Jim Hague <jim.hague@acm.org>

 * src/client.c,src/fetch.c,src/noffle.c: The groupinfo.lastupdate file
   was being used to (a) indicate the time of the last addition to group
   information, and (b) the last access to a server. With more than one
   server specified, (a) meant the groupinfo.lastupdate file was updated
   when new groups on the server (or a new fetch of the server group list)
   were processed. When server 2 came to use the file for (b) (to determine
   the time to specify when sending the NEWGROUPS command), the time was
   already set by server 1 and so server 2 would not see new groups. Fix
   this by creating lastupdate.<server> files for use (b).
 * src/client.c,src/group.c: Set initial group creation time to the current
   time. Previously it was set to 0, so new groups were not reported to a
   NEWGROUPS request unless 'noffle --query times' was run - even then,
   local groups would never be reported. Setting the creation time to the
   creation time on the local server makes things work properly. NB - the
   group creation time should always be reported as the creation time on
   the server; must fix this and remove '--query times'. This change will
   require 'noffle --query groups' to be re-run to create the server
   lastupdate.<server> files.

Mon Jul 03 12:05:50 BST 2000 Jim Hague <jim.hague@acm.org>

 * src/database.h,src/database.c,src/server.c: Fix 'XHDR <msgId>' and
   add 'XPAT <msgId>'. 'XHDR <msgId>' previously only worked if
   msgId was a message in the current group. My brain was really
   in neutral when I did that.

Fri Jun 30 2000 Markus Enzenberger <markus.enzenberger@t-online.de>

  * src/server.c: Leave online mode, if the connection to a remote server
    fails for avoiding a series of timeouts and holding the lock for
    a long time.

Sun Jun 25 09:45:50 BST 2000 Jim Hague <jim.hague@acm.org>

 * src/protocol.c: Another go at Prt_genMsgId. Yesterday I seeded the
   random element of the generated message id from the time; but what
   if two Noffle processes start in the same second? So switch to seeding
   with tv_usec instead.
	
Sat Jun 24 21:21:47 BST 2000 Jim Hague <jim.hague@acm.org>

  * packages/redhat/README, packages/redhat/noffle-expire,
    packages/redhat/noffle.spec: Initial versions.
  * src/noffle.c, docs/noffle.1: Remove --post (local|all)
    and replace with just --post. 'Approved:' header recognition
    removes need for --post varieties.
  * src/post.c: 'Approved:' header recognition, post to all external
    servers not just first, check all groups for post access before
    posting to one.
	
Sat Jun 24 20:45:52 BST 2000 Jim Hague <jim.hague@acm.org>

 * src/noffle.c: Set last accessed time on group when subscribed
   from command line.
 * src/post.c: Bugfix - Post_close on duplicate article post.
 * src/protocol.c: Fix bug in Prt_genMsgId that caused duplicate
   message IDs to be generated for posts in the same second.

Sat Jun 22 2000 Markus Enzenberger <markus.enzenberger@t-online.de>

 * doc/NOTES: Removed section about GNUS hanging. It was caused
   by the "select" bug in Noffle.

Sat Jun 22 2000 Markus Enzenberger <markus.enzenberger@t-online.de>

 * src/server.c, src/protocol.c: Fixed a critical bug. "select" cannot
   be used with buffered stdio. This caused Noffle to hang with some
   readers (like tin).
	
Mon Jun 19 22:43:38 BST 2000 Jim Hague <jim.hague@acm.org>

 * src/util.c, src/database.c: Fix header line reading bug.

Tue Jun 13 21:31:32 BST 2000 Jim Hague <jim.hague@acm.org>

  * src/noffle.c: Add include <sys/time.h> before sys/resource.h.
    Man page says you need it, FreeBSD won't compile without it.
  * src/client.c: Remove SA_INTERRUPT flag set from installSignalHandler.
    It is flagged as a no-op in the Linux headers, and does not exist
    on FreeBSD or Solaris.
  * src/configfile.h, src/configfile.c, src/protocol.h, src/protocol.c,
    src/post.c, docs/noffle.conf.5: Add 'path-header' and addition
    of Path: header to posted articles if required.
	
Tue Jun 13 07:27:21 BST 2000 Jim Hague <jim.hague@acm.org>

  * src/configfile.h, src/configfile.c, src/database.c: Redo config
    expires routines to remove enumerator and replace with routine to
    obtain expire time for specified group.
  * src/configfile.h, src/configfile.c, src/server.c, noffle.conf.example,
    docs/noffle.conf.5: Change 'auto-subscribe-mode' to
    'default-auto-subscribe-mode' and add
    'auto-subscribe-mode <grp pattern> <mode>'. For the moment,
    spot old usage of 'auto-subscribe-mode' and interpret it as
    'default-auto-subscribe-mode'.
  * src/client.c: Rename variable to remove compiler warning.
	
Sat Jun 11 2000 Markus Enzenberger <markus.enzenberger@t-online.de>

 * Prepare for version 1.0pre6
 * configure.in: Removed warning options for warnings that are
   unavoidable with libgdbm

Mon Jun  5 09:46:30 BST 2000 Jim Hague <jim.hague@acm.org>

 * src/client.c, src/fetch.c, src/group.c, src/group.h, src/noffle.c:
   Don't track remote message number read unless subscribed to a group.
   This stops 'Missing articles' pseudos being generated when you join
   a group some time after doing the 'noffle --query groups' that first
   found the group, or if you resubscribe a while after unsubscribing.
   They will still be generated if articles are missed when a group is
   subscribed, in which case the pseudo message is entirely applicable.
	
Sat Jun 03 2000 Markus Enzenberger <markus.enzenberger@t-online.de>

 * docs/NOTES: removed the whole section about the mail2news gateway.
   It doesn't really work, because procmail forks for each mail and
   changing the posting allowed status is not atomic.

Thu Jun 01 2000 Markus Enzenberger <markus.enzenberger@t-online.de>

 * docs/NOTES: Added section about "replace-messageid" option in
   the Mail-News-Gateway chapter.

Mon May 29 19:12:47 BST 2000 Jim Hague <jim.hague@acm.org>

 * src/client.c: Fix spelling mistake in comment.
 * docs/noffle.1: Add a little bit more to the description of --online.
	
Mon May 29 18:28:25 CEST 2000 Uwe Hermann <uh1763@bingo-ev.de>

 * configure, configure.in: Changed the --enable-debug option of configure.
   It now accepts the parameters 'no', 'min' and 'yes', i.e. no compiler-
   warnings, minimum compiler-warnings and maximum compiler-warnings.
   Default is 'min'. Stable releases should have 'no' as default, IHMO.

 * NEWS: Update.

Fri May 26 11:38:27 BST 2000 Jim Hague <jim.hague@acm.org>

 * docs/NOTES: Added notes on knode.
 * src/client.c: Corrected comment.
	
Thu May 25 22:03:56 BST 2000 Jim Hague <jim.hague@acm.org>

 * src/post.c: Fixed stupid bug in article checking code where a
   correctly formatted Date: line would have the "Date: " removed
   before writing the outgoing file. Remote servers, not unnaturally,
   get upset about this. Mea culpa :-(
	
Sat May 20 22:10:48 CEST 2000 Uwe Hermann <uh1763@bingo-ev.de>

 * docs/Makefile.am, docs/Makefile.in: Added INTERNALS to docs/Makefile.am, so
   that it is included in the distribution by 'make distcheck'.

 * docs/NOTES: Added info about pan versions 0.7.6 and 0.8

Sat May 20 11:46:54 BST 2000 Jim Hague <jim.hague@acm.org>

 * src/client.c: Closer perusal of Son Of RFC1036 reveals that
   Supersedes: can have multiple message IDs. Do this.
	
Sat May 20 2000 Markus Enzenberger <markus.enzenberger@t-online.de>
 * src/noffle.c: always enable generation of core files.

Fri May 19 14:02:44 BST 2000 Jim Hague <jim.hague@acm.org>

 * src/util.h, src/util.c, src/database.c, src/pseudo.c, src/post.c:
   Redo Utl_rfc822Date to not use strftime - this was potentially
   wrong as it would only generate a conformant date string in
   English locales - and rename to Utl_newsDate because the date format
   is actually a subset of RFC822 - see Son Of RFC1036. Also add
   Utl_parseNewsDate, ensure the date on posted articles is conformant
   and replace if not, and implement observance of Expires: headers.
 * src/client.c: Observe Supersedes: headers on incoming articles.
 * src/content.c: Ensure if last article(s) in group are cancelled that
   article numbers aren't re-used.
 * docs/INTERNALS: Move INTERNALS to docs/.
	
Thu May 18 13:22:36 BST 2000  Jim Hague <jim.hague@acm.org>

 * Recognise explicit posting statuses of 'y', 'n' and 'the rest'.
   The latest IETF draft says you can have other statuses apart from
   'm' (moderated group), and these should probably be treated in the
   same way as 'm', i.e. forwarded to the external server to worry
   about.
	
Wed May 17 21:19:19 BST 2000 Jim Hague <jim.hague@acm.org>

 * src/configfile.h, src/configfile.c, src/post.h, src/post.c,
   src/noffle.c, src/server.c, docs/noffle.1, docs/noffle.conf.5:
   Moved all article posting code into post.[hc], removed
   'remove-messageid' option, added '--post' to noffle command line.
   Added 'post-locally' option. docs/NOTES still needs updating.
   Needs more testing too.
	
Wed May 17 2000 Markus Enzenberger <markus.enzenberger@t-online.de>

 * README: Clean-up and update.
 * docs/noffle.conf.5, src/configfile.h, src/server.c:
   Disabled remove-msgid option.

Mon May 15 11:21:28 BST 2000 Jim Hague <jim.hague@acm.org>

 * src/configfile.h, src/configfile.c, src/client.c, docs/noffle.conf.5:
   Added getgroups and omitgroups options.
	
Sun May 14 16:51:24 BST 2000 Jim Hague <jim.hague@acm.org>

 * docs/NOTES: Added notes on trn, xrn and knews.
 * src/configfile.h, src.configfile.c, src/server.c, docs/noffle.conf.5:
   Increment the article number of the gen info article in groups that
   are not auto-subscribed each time the gen info article is read. The gen
   info article thus remains unread at the start of every newsreading
   session. This behaviour can be disabled by setting new config
   setting 'info-always-unread' to 'no'. Default is 'yes'. This (I hope)
   restores Markus's preferred behaviour.
 * INTERNALS: Added file with some rough jottings on the internals of Noffle.
   A work in (probably sporadic) progress.

Sun May 14 2000 Markus Enzenberger <markus.enzenberger@t-online.de>

 * src/fetch.c: Did some refactoring.

Sat May 13 15:09:01 BST 2000 Jim Hague <jim.hague@acm.org>

 * src/itemlist.c: Fixed stupid, Stupid, STUPID bug in Itl_next().
   Redid itemlist code slightly to remove need to keep separators
   string, at the cost of making it impossible to use '\1' as a
   separator. I don't think this will be a problem.
 * src/log.h, src/log.c, src/over.h, src/over.c: Adjusted consting
   in Log_init and new_Over to remove compiler warnings.
 * src/portable.h, src/server.c, src/client.c: Introduced UNUSED(x)
   macro to indicate deliberately unused function parameters and
   remove warnings.
 * src/content.c: Preserve gen info in Cont_write() provided it is
   followed by an article with the next number. Stops gen info article
   vanishing instantly on reading when auto-subscribe is on, which
   was sort-of confusing for users (why can't I read that again?)
   and caused xrn to complain the NNTP server was broken.

Sat May 13 2000 Markus Enzenberger <markus.enzenberger@t-online.de>

 * src/client.c: Rewrote needsMark(): uses itemlist.h, more debugging output.
 * src/server.c: Rewrote getTimesInSeconds(): arguments ar now int and
   checked with assertions. Return value is time_t and must be checked
   for (time_t)-1.

Sat May 13 06:20:01 CEST 2000 Uwe Hermann <uh1763@bingo-ev.de>

 * src/Makefile.am, src/Makefile.in: Added portable.h to the list of sources.
   I forgot this in my last commit. Sorry.

Fri May 12 2000 Markus Enzenberger <markus.enzenberger@t-online.de>

 * src/client.c: add some intermediate variables for easier debugging
   in needsMark(). It seems that thread mode is sometimes not working.
 * src/client.c, src/content.c, src/dynamicstring.h, src/dynamicstring.c,
   src/util.h, src/util.c, src/protocol.c:
   Changed some variable types and used some casts to avoid compiler
   warnings about signedness. In general, int should be used for parameters
   for allowing a signedness assertion in the function.
   (see J.Lakos: Large-Scale C++ Software Design, section 9.2).
 * src/client.c, src/database.c, src/database.h, src/fetch.c, src/fetchlist.c,
   src/fetchlist.h, src/group.c, src/group.h, src/noffle.c, src/server.c
   src/server.h:
   Renamed some variables, because they caused compiler warnings because
   of shadowing global variables from system include files
   (index, stat, serv).
 * src/fetchlist.c:
   Avoid compiler warning because of cast from const to non-const.
 * src/post.c, src/server.c:
   Avoid compiler warnings about incomplete initializer blocks.
	
Fri May 12 10:19:56 CEST 2000  Uwe Hermann <uh1763@bingo-ev.de>

 * configure, configure.in: Only add all those compiler-switches
   like -ansi, -pedantic etc. if we use gcc. Other c-compilers are unlikely
   to have those switches.


Wed May 10 00:25:44 CEST 2000  Uwe Hermann <uh1763@bingo-ev.de>

 * src/client.c, src/configfile.c, src/content.c, src/control.c,
   src/database.c, src/dynamicstring.c, src/fetch.c, src/fetchlist.c,
   src/group.c, src/itemlist.c, src/lock.c, src/log.c, src/noffle.c,
   src/online.c, src/outgoing.c, src/over.c, src/post.c, src/protocol.c,
   src/pseudo.c, src/request.c, src/server.c, src/util.c:
   Added portable.h #include.

 * src/client.h, src/database.h, src/fetch.c, src/group.h, src/lock.c,
   src/outgoing.c, src/over.c, src/over.h, src/pseudo.c, src/server.c,
   src/util.c, src/util.h: Added some #ifdefs to correctly include either
   time.h or sys/time.h or both, depending on which are found.

 * src/noffle.c: Changed the return-type of the signal-handlers bugReport()
   and logSignal() to RETSIGTYPE, which is either void or int, depending on
   the system you compile on (autoconf #defines the RETSIGTYPE).

 * src/portable.h: Added file. This #defines some macros, so the code uses
   __snprintf() and __vsnprintf if snprintf and vsnprintf aren't available.
   This is the case on SunOS, for example.


Sat May  6 12:25:39 BST 2000  Jim Hague <jim.hague@acm.org>

 * src/server.c: Changed XOVER with no arg. to return info for current
   article, not error.

 * src/server.c, src/content.h, src/content.c: XHDR - added 'xref' to
   headers recognised to keep trn happy, and recognise message ID argument.

 * src/server.c, src/content.c: Ensure first/last from LIST ACTIVE and
   GROUP agree (trn uses former). Tricky with pseudo gen info articles
   around. Presence of these now only recorded in content and not
   reflected in group first/last until proper article posted after
   pseudo.

 * src/client.c, NEWS: Reinstated starting article numbering from first
   article number on server. Reasoning below is wrong except in exceptional
   circumstances (e.g. join group, auto-subscribe, manual unsubscribe,
   auto subscribe again, etc. to get > 2 Noffle info messages in group.
   Bring reader up to date, remove & reinstall Noffle. Join group,
   autosubscribe after more news arrives at server, reader thinks it has read
   n articles it hasn't, where n is number of Noffle info messages in
   group first time round - 2). Feature is generally useful, esp. in
   development, so back in it goes.

 * src/group.c: Forget cached group info when group database closed.
	

Sat May  6 01:31:04 CEST 2000  Uwe Hermann <uh1763@bingo-ev.de>

 * Makefile.in, configure, configure.in, docs/Makefile.in, src/Makefile.in:
   Added checks for the mail and sort programs. ./configure will abort if
   they're not found.

 * README: Removed the paragraph about news client software, as it's the same
   as the one in docs/NOTES.

 * TODO: Removed 'expiring by groups' and
   'move some text from noffle.1 to noffle.conf.5'.

 * docs/NOTES: Changed the text about -DDEBUG to explain one should use
   './configure --enable-debug'.

 * docs/noffle.1, docs/noffle.conf.5: Minor fixes. Added myself and Jim Hague
   to the AUTHORS section :-)

 * src/client.h, src/common.h, src/configfile.h, src/content.c, src/content.h,
   src/control.c, src/control.h, src/database.h, src/dynamicstring.c,
   src/dynamicstring.h, src/fetch.h, src/fetchlist.h, src/group.h,
   src/itemlist.c, src/itemlist.h, src/lock.h, src/log.c, src/log.h,
   src/noffle.c, src/online.h, src/outgoing.h, src/over.c, src/over.h,
   src/post.h, src/protocol.h, src/pseudo.h, src/request.h, src/server.h,
   src/util.c, src/util.h: Added the <config.h> include.

 * src/content.c: Added missing include "content.h". Added a missing 'void'
   in the declaration of clearCont().

 * src/fetchlist.c: Casted fetchlist.size to (size_t) in a call to qsort(),
   as qsort() expects a size_t. This removes a warning.

 * src/noffle.c: Made doRequested() static. Added missing void to
   enableCorefiles().

 * src/log.c, src/protocol.c, src/online.c, src/pseudo.c: Added missing
   includes.

 * src/pseudo.c: Made genOv() and genPseudo() static.

 * src/server.c: Added missing void to postArts(). Made touchArticle() static.

 * src/util.c: Casted arguments of malloc() and memcpy() to size_t.

 * src/dynamicstring.c, src/itemlist.c, src/over.c, src/request.c, src/util.c: 
   Removed casting of the result of malloc(). This is not necessary and
   can hide a missing include of <stdlib.h>.


Fri May  5 23:39:52 CEST 2000  Uwe Hermann <uh1763@bingo-ev.de>

 * client.c, client.h, common.h, config.c, config.h, content.c, content.h,
   control.c, control.h, database.c, database.h, dynamicstring.c,
   dynamicstring.h, fetch.c, fetch.h, fetchlist.c, fetchlist.h, group.c,
   group.h, itemlist.c, itemlist.h, lock.c, lock.h, log.c, log.h, noffle.c,
   online.c, online.h, outgoing.c, outgoing.h, over.c, over.h, post.c, post.h,
   protocol.c, protocol.h, pseudo.c, pseudo.h, request.c, request.h, server.c,
   server.h, util.c, util.h, wildmat.c, wildmat.h: Moved files to the
   subdirectory src/

 * Makefile.am, acconfig.h, configure.in, docs/Makefile.am, src/Makefile.am,
   Makefile.in, aclocal.m4, config.h.in, configure, install-sh, missing,
   mkinstalldirs, stamp-h.in, docs/Makefile.in, src/Makefile.in: Added files.
   They are used by aclocal, autoheader, autoconf and automake.

 * src/config.c, src/config.h: Renamed to configfile.c and configfile.h,
   because configure will generate a config.h file itself.

 * src/client.c, src/content.c, src/database.c, src/fetch.c, src/fetchlist.c,
   src/group.c, src/lock.c, src/noffle.c, src/online.c, src/outgoing.c,
   src/over.c, src/pseudo.c, src/request.c, src/server.c, src/util.c:
   Changed '#include "config.h"' to '#include "configfile.h"'.

 * src/client.c, src/content.c, src/database.c, src/fetch.c, src/fetchlist.c,
   src/group.c, src/lock.c, src/online.c, src/outgoing.c, src/post.c,
   src/protocol.c, src/request.c, src/server.c: Files now #include <config.h>.
   Added missing <stdio.h>. This removes the warnings about snprintf() not
   being declared.

 * Makefile: Removed. This is now generated by configure.


Fri May  5 22:24:37 CEST 2000  Uwe Hermann <uh1763@bingo-ev.de>

 * AUTHORS.html, CHANGELOG.html, COPYING.html, README.html, FAQ.html,
   NOTES.html, INSTALL.html: Removed files.
 
 * AUTHORS, COPYING, ChangeLog, README, INSTALL, NEWS, docs/FAQ, docs/NOTES:
   Added files.

 * TODO.TXT: Renamed to TODO. Slightly changed formatting.

 * README: Reformatted the file. Added info about CVS. Added a pointer to
   the file INSTALL.

 * noffle.1, noffle.conf.5: Moved to docs/

 * LSM.TXT: Moved to docs/noffle.lsm. Small fix.

 * INSTALL: Adapted to autoconf build-system. A few minor fixes.


-------------------------------------------------------------------------------

1.0pre6pre

     * Forget cached group info when group database closed.
     * Added list of 'forbidden' newsgroup specs., as defined in draft IETF
       Newsgroup Format (C.Lindsey), tracked to replace RFC1036. This defines
       newsgroup names that should only be used for server-local groups and
       server pseudo-groups (e.g. INN's to.*, cancel, cancel.*, junk). These
       are now intercepted when querying server groups and ignored. Group names
       omitted are any single component names, any 'control.*', 'to' or
       'to.*',and any with a component 'all' or 'ctl'.
       Note these restrictions do not apply to local group names.
     * Fixed problem with article numbering if the overview file empties,
       e.g. due to all articles in a very low volume group expiring. This
       would cause article numbers to be set back to 1 when a new article
       arrives.
     * Changed %i to %d in sscanfs everywhere. INN often (as it is entitled
       to do) has leading zeros on numbers. %i interprets these as octal
       numbers. Also changed %i to %d in printfs, for no good reason.
     * New groups now always start numbering at article 1. Previously article
       numbering would start with the first held remote article number, in an
       attempt to avoid newsreaders noticing if noffle is deleted and
       reinstalled. Given Noffle may well not collect the first held article
       anyway - it only will if the default number of articles to retrieve on
       a first connect is big enough - and the fact that Noffle's pseudo
       articles make it impossible to keep local article numbers in lock-step
       with the server, there is the chance this scheme would just cause
       readers to miss new articles.
     * Record newsgroup posting status. Enforce it at posting time.
       Added --modify to change newsgroup descriptions for all groups and
       posting status for local groups.
     * Added group deletion.
     * Added message cancellation - from command line or by control message.
       Note command line only cancels locally - it can't be used to cancel a
       message that has already gone offsite. A control messages cancels
       locally if possible; it is only propaged offsite if the target is in a
       non-local group and has itself already gone offsite.
     * Added wildmat code taken from INN - ensure Noffle wildcarding is
       exactly to spec.
     * Added group-specific expire times.
     * Noffle now sends a "MODE READER" command after connecting to the
       remote server. INN needs this before it will permit POST.
     * Applied patch from Jim Hague: support for local groups / new command
       line options --create and --cancel.
     * Changed output of 'noffle -a all' to standard mailbox format,
       so that tools like grepmail work.

Version 1.0pre5

     * Core files are always enabled when running as server and debugging
       symbols are always in the executable.
     * Use GDBM_FAST flag for hash files.
     * Fixed a bug in online mode with servers that need authentication.
     * Minor changes and improvements

Version 1.0pre4

     * Fixed a bug that broke cross-posting of articles
     * Fixed a bug that truncated headers of posted articles.
     * Long overview header lines are now split into multiple lines in
       response to HEAD or ARTICLE commands.
     * Fixed a bug that caused a crash sometimes when updating the
       requested article list after releasing/regetting the global lock
     * Server is now allowed to generate core files on crash (in spool
       directory) if compiled with -DDEBUG option
     * Opening an article additionally marks all references as
       interesting, so more articles are fetched in thread mode, if one
       article of a thread was opened.
     * New config option "connect-timeout"
     * Minor improvements and bug-fixes

Version 1.0pre3

     * Added XPAT command. Not full syntax, but enough for making slrn's
       thread reconstruction work
     * Storing of requested message-ids completely rewritten (thanks to
       Volker Wysk for the patch). Much more efficient now. Bug removed
       that broke requesting articles with message-IDs containing a
       slash. Added --requested option.
     * When fetching requested articles, do not send more than 20 ARTICLE
       commands at once, before parsing the server response.
     * Minor bug fixes and improvements.

Version 1.0pre2

     * Added RPM_BUILD_ROOT variable to Makefile (useful for creating RPM
       source packages)
     * Removed terrible bug that truncated article body after releasing
       and re-getting global lock

Version 1.0pre1

     * needs complete re-installing, some formats have changed
     * Support for multiple remote servers
     * Faster download when fetching news, because articles are prepared
       in database while parsing response to XOVER and all ARTICLE
       commands are sent at once
     * Bug removed that made authetication only work with lower-case
       passwords
     * Other small bug fixes and improvements

Version 0.19

     * Fix broken full mode
     * Fix cutting of articles after line beginning with '.'
     * Other bug fixes
     * LIST commands can have pattern argument now
     * initial-fetch option removed (same as max-fetch now)

Version 0.18

     * needs complete re-installing, most file format have changed
     * Group database uses gdbm, databases moved to
       /var/spool/noffle/data
     * Most config options changed their names, some do not longer exists
     * New fetch mode "thread" added
     * Different --fetch invocations replaced by single option
     * Meaning of "--database" option changed, "--article" option added
     * Failed postings are now returned to sender by "mail" command
     * Expire uses last access time
     * Auto-subscribe option only subscribes groups now, if an article
       body is opened (no longer if group is selected).
     * Improve posting at German T-Online provider: rename X-Sender
       header, Reply-To header is added, if missing (T-Online overwrites
       From headers), allow to remove Message-ID as a config option.
     * Doc files are now copied to $(PREFIX)/doc/noffle
     * Y2K compliance of NEWGROUPS command
     * Various bug fixes (thanks to all users helping with bug reports)
     * Various changes for tuning and improvement

Version 0.17

     * Bug removed that caused NOFFLE to exceed the allowed maximum number of
       open files on longer sessions.

Version 0.16

     * Noffle generates Message-ID if a message received for posting has none.