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.
|