Changes since leafnode+-2.14: - Changed to check whether removing target is file or directory in texpire. - Fixed setstring bug. It was implemented wrongly. Thanks Igor. - Added fqdn field to configuration file by user's request. Thanks Simon. Changes since leafnode+-2.13: - Changed Makefile for ease of porting. Changes since leafnode+-2.12: - Added NOWAIT_LOCK macros for who want to stop leafnode when it cannot take a lock. - Added some detailed error messages. - Improved the estimation of the year of messages. - Changed to post messages to upstream servers as many as possible. - Changed timeout values for open and read for NNTP as variables. You can change them from configuration file. Changes since leafnode+-2.11: - Added DONTSTRICTDATEFORMAT flag for people don't care the correctness of date format. - Added nntpconnectauth() to call authenticate() explicitly. So, now authenticate() is not called automatically from putaline() or nntpreply(). - Added mysyslog(). - Applied YOSHIFUJI-san's IPv6 patch. - Enhanced myfnmatch to support leading '*' by following SHIRAI-san's implementation. - Implemented pattern matching functions. - Added "minlines", "maxbytes", "killsubject", and "killfrom" as configuration variables for filtering purpose. See leafnode.8 for more details. Changes since leafnode+-2.10: - Fixed a problem of posting '.' line. - Avoid SIGSEGV if leafnode cannot read configuration file. - Fix problems around FQDN. Thanks SHIRAI-san for a patch file. - Change to write 1 byte datum to interesting files. Thanks SHIRAI-san. Changes since leafnode+-2.9: - Supported Y2K problem. :-) - Changed messages. - Added maxcount option. Changes since leafnode+-2.8: - Added lockf support. Thanks Tim for patches. - Changed archivefaq.pl. Now it is not so great resource eater. Thanks Alexander for patches. - Fixed a bug that some header lines are not recorded sometime. Thanks Tim for letting me know. - Added filteredngs field in config file. Now leafnode+ can declare not only retriving news groups but also screening news groups. Thanks Whisker for patches. - Changed to save only listed news groups into groupinfo file if they are listed in the configuration file. Thanks Whisker for patches. - Added postable field for each server in the configuration file. Now, leafnode+ trys to post outgoing articles to each postable news server if old attempts are failed. Thanks Whisker for a help. Changes since leafnode+-2.7: - lock function is implemented to use lockf didn't work correct. I changed it into old one. - Added never timout option for newsgroups. If timeout_short and timeout_long are equal to zero, newsgroups once marked interesting never unmark. Changes since leafnode+-2.6: - Changed to use lockf instead of flck. - Changed the size of fqdn in nntpd.c to 256 and related stuff. - Splited util.c into *util.c in order to seem all codes same with Cornelius's code to prepare for merging. - Added msgid checker at the beginning of removearts() and storep(). Changes since leafnode+-2.5: - The size of datesofmonth[] was changed. Changes since leafnode+-2.4: - FAQ and INSTALL are changed. Thanks a lot, Tom Hukins. Changes since leafnode+-2.3: - Age() function was fixed. It had a problem when it was used to compare two dates not in same year. Changes since leafnode+-2.2: - Fixed a timeout problem. The timeout date, which is the date interesting newsgroups will be uninteresting, is operated correctly now. Original leafnode has been misimplemented about st_ctime. It means a changed time of a file status, but leafnode uses it as a created time of a file. Changes since leafnode+-2.1: - Removed an OLDFILTER support. - Added timeout_short, timeout_long and timeout_active as entries of configuration file. - Changed old information about leafnode 1.4 to new information about leafnode+. - Added maxage and maxcrosspost as entries of configuration file for compatibility with Cornelius's Leafnode. - Changed removearts() to eliminate too many warning messages when unlinked files have already been unlinked. Changes since leafnode+-2.0: - Added and fixed comments. Added information about MLs. Changes since leafnode+-1.6: - Supported groupexpire which showed expire time for particular newsgroups. - Changed the name of program of "fetch" into "fetchnews." Changes since leafnode+-1.5: - Fixed a bug in a calculation of hash values in lookup(). - Removed some unnecessary chdir() from postarticles(). Changes since leafnode+-1.4: - Caching operation of chdir was incorporated into chdirgroup(). - Changed to use fnmatch(). Changes since leafnode+-1.3: - Fixed a bug around flushing and closing the groupinfo. Changes since leafnode+-1.2: - Changed config.c to read time.h and other headers. - Added SIGINT handling routine. Changes since leafnode+-1.1: - Added FAQ. - Fixed some documents. Changes since leafnode-1.4: - Corrected the monthname buffer handling. - Fixed a bug of processing routine of "XHDR". - Divided groupinfo and server's information file. Now groupinfo has informations for local nntpd. The information about the server and supplementary servers were moved into "servername" file. - Supported "supplement" configuration. Read active data from all servers and make one groupinfo file and multi server's information files. - Removeed "-l" option because there is no difference between "server" and "supplement." - Added "-n" option which force to write server's information when finishing the fetching from each news group. It may help you if your server is on an unstable link and you got many problem of suddenly disconnection. - Added right reconnection routine. - Supported multiple user names and passwords to connect multiple NNTP servers. - Added SIGPIPE handling routine. - Supported "22X n a XXX" format responses. It is required in NNTP, but leafnode's nntpd didn't support it. - Added NOMSGID compile flag to add no message-id header to posting articles. - Added "newsgroups" entry in configuration file. It shows what news groups are in each news server. - Added removeart function to supersede articles. - Added lockactive function to access information exclusively (Original lock codes are broken). - Added leaftool program which maintain leafnode information. - Changed to increase xlast when removing a news group from interesting.groups to let users know about it. - Changed to not increase xlast for ".XXXX" news groups in interesting.groups. I cannot understand what it want. - Changed to add Xref header anytime. - Changed to keep the order of headers in fetched articles. - Added DOTNGFILE compile option. I changed whole codes to use no "." file, but if you want to use old codes, please use this option. - Added OLDFILTER compile option. I changed filtering codes in fetch.c, but if you want ot use old codes, please use this option. - Added "maxold", "maxlines" and "maxgroups" configuration values to filter some hated news artcles. "maxold" specifies the maximum dates of articles fetch should fetch from the upstream server in each group. "maxlines" specifies the maximum number of lines of articles fetch should do so. "maxgroups" specifies the maximum number of cross-posted news groups of articles fetch should do so. See leafnode.8 also. - Changed to use asynchronous transmission for looking for new articles in news groups. It makes fetch faster. - Removed a chdirgroup call from getgroups(). I guess it is a reason of saving an article to wrong news groups. - Added preconnect and viahost ability to use SSH. - Changed the name of this package to leafnode+. Kazushi (Jam) Marukawa