The V6.2.0 Release Notes are available in separate document.
(see README.TXT for details): README.TXT LICENSE_README.TXT LICENSE_GHUSTON.TXT LICENSE_GNUGPL.TXT GROUPS_CONVERT_V62.COM PGPCALL.COM PUBRING.PGP MD5.H MD5.C
* V6.1b11 14-Apr-1997 Mark Martinec mark.martinec@ijs.si * - replace several calls to strcpy/strcat with safer strnncpy/strnncat * - replace pattern strcpy(news_malloc(strlen(x)+1),x) with news_strdup * - replace pattern strcat(err_oline,x) with err_oline_cat(x) * - change %s to %.s in sprintf to guard against overwriting buffer * V6.1b11 7-May-1997 Mark Martinec mark.martinec@ijs.si * - decouple group name size (new constant GRPNAMELEN) * from the size of item titles (SUBJLEN) * - decouple the in-memory grp_name size (GRPNAMELEN) from the * size of the groups file record field (GRPNAMELEN_F). * Now the file record may contain group name which is * not '\0'-terminated, thus gaining one character * in the group name length, and ANU in a NNTP client mode * may access groups with longer names than local database * would accomodate. * - grp_name field in the GRP structure is now dynamically allocated * to save on virtual memory by storing only the actual title sizes
* V6.1b10 5-Sep-1996 Mark Martinec mark.martinec@ijs.si * - make two separate structures for newsgroup: * * GRP is used for in-memory structure; * * GRPF is used for file I/O and exactly corresponds * to a record in NEWS.GROUPS file. * This change is reflected in many modules but only documented here. * The main reason for this was to significantly reduce page faulting * when the number of newsgroups is very high. For a single loop e.g. * to set a flag for each group (say 10000 groups), it was necessary * to page through 10000*524/512 = 10k pages and now this is reduced * to 10000*160/512 = 3k pages, which has a far better chance of * staying in the process' working set. Also virtual memory is somewhat * reduced since space for blanks in the newsgroup title, notice * and NNTP server node is not allocated. The in-memory structures * now have a more optimal memory alignment for AXP. * Routines for conversion of in-memory <--> i/o structures are provided * (see: cnvgroup_inmemory_to_filerec, * cnvgroup_filerec_to_inmemory, new_group). * V6.1b10 9-Sep-1996 Mark Martinec mark.martinec@ijs.si * - add field grp_firstnum (lowest article number) to the group record; * It appears that this field was updated in the file even though * the comments claimed that it is in the memory-only region of the * group structure. NNTP server uses this info for the clients. * It is updated by the skim procedure (plus at some other locations). * NOTE: the location of this field in the file record is now changed * (to avoid having a field in the middle of the filler). * This introduces inconsistency with the upgrade, but the SKIM phase * will recalculate this value, so this should not be a problem. * V6.1b10 9-Dec-1996 Mark Pizzolato mark@infocomm.com * - Changed the definition of "establish_handler" when working under * DEC C, to properly cast the argument function type to return * unsigned int. It seems that recent changes to the signal.h * include file uses a typedefed prototype which is incompatible.
* V6.1b11 7-May-1997 Mark Martinec mark.martinec@ijs.si * - now this modules is used by the NNTP server and support programs * as well as for the NEWS program. This is to assure that common * variables, used by the support routines in modules common * to NEWS and NNTP server, see the same variable declarations.
* V6.1b11 May-1995 Mark Martinec mark.martinec@ijs.si * - for TCPWARE include, not
* V6.1b10 30-Jan-1996 Mark Pizzolato mark@infocomm.com * - Multinet V3.5 ended up defining somethings that we defined * here, so added conditional to avoid the problem
* V6.1b10 31-Jul-1995 Mark Pizzolato mark@infocomm.com * - fixed an original bug which has received numerous mention on the * mailing list regarding the errors that it logs. "Lock check * variable already set to 1". The code originally checked to see * if the lock check variable was set prior to actually aquiring the * lock manager lock for the global section. * - Code has been modified to properly create and initialize the * CACHE_FILENAME file if it doesn't exist. This removes any external * steps from being necessary to create and initialize the cache file.
* V6.1b10 9-Dec-1996 Mark Pizzolato mark@infocomm.com * - minor declaration cleanup to get warningless compile under * DEC C V5.3 on VAX
* V2.6 22-Jul-1996 Mark Martinec mark.martinec@ijs.si * - renamed 'getopt' to 'mygetopt' (as suggested by * James Kirkpatrick) to cure conflicting * declarations with standard library (VMS V6.? / DECC)
* V6.1b10 10-Dec-1996 Mark Pizzolato mark@infocomm.com * - defined _NEWS_MAIN_PROGRAM which now causes the NEWSVARIABLES.H * to define all global variables instead of merely references to * them. * V6.1b11 21-Feb-1997 Mark Martinec mark.martinec@ijs.si * - fp_open, fpa_open and fpd_open are now int; * don't try to delete_file_versions(fp*_open); * V6.1b11 28-Mar-1997 Mark Martinec mark.martinec@ijs.si * - use new procedures available_proto, proto_name and name_to_proto * to replace frequent code patterns and to make possible * using ANU with different TCP transport library * without changing NEWSRC user files (automatically changes * requested and unavailable TCP library to the one * that is compiled-in with the program).
* V6.1b10 22-Feb-1996 Mark Martinec mark.martinec@ijs.si * - in add_file() added option "shr=nil" to fopen and ignore * RMS$_FLK & RMS$_FNF errors to enable multiple ADD FILE processes * to be running concurrently on the same set of batch files * - correctly handle /DEFNEWSGROUP and /NEWSGROUP qualifiers * in a combinations of global and positional placements * - allow qualifiers /DEFNEWSGROUP and /NEWSGROUP to specify * a list of values, which are then concatenated using commas * as separators. This is just for convenience, the meaning of * /NEWSGROUP=(a,b,c) is the same as /NEWSGROUP="a,b,c". * As a side effect longer lists (up to 1023 characters) * can now be specified (not that we would need that, but ...) * V6.1b10 16-Mar-1996 Mark Martinec mark.martinec@ijs.si * - new functions lock_filename() and unlock_filename() call * lock manager directly to avoid timing problems with * nonatomic call to { fclose(); delete(); } * NOTE: All ANU-NEWS jobs running ADD FILE on the same set of files * should be running under the same gid (group id) to enable * locks to be recognized between jobs ! * V6.1b11 24-Mar-1997 Mark Martinec mark.martinec@ijs.si * - recognize header 'X-PGP-Sig:' and store information * required for checking PGP signature of the control mesages * - collect common code in routine find_header_name * - remove array 'headers' (with lowercased names from fheaders), * now 'fheaders' is used for both purposes (matching and writing). * V6.1b11 14-Apr-1997 Mark Martinec mark.martinec@ijs.si * - replace several calls to strcpy with safer strnncpy * - replace pattern strcpy(news_malloc(strlen(x)+1),x) with news_strdup * - fix the year 2000 problem when generating the missing 'Date:' header * - quick check of pgp_verify() before ADD FILE processing starts * V6.1b11 22-May-1997 Mark Martinec mark.martinec@ijs.si * - replace single flag EXECUTE_CONTROL with one for each type * of control messages: EXECUTE_CONTROL_CHECKGROUPS, * EXECUTE_CONTROL_NEWGROUP and EXECUTE_CONTROL_RMGROUP. * - flags EXECUTE_CONTROL_RMGROUP_DELETE and * EXECUTE_CONTROL_RMGROUP_LOCAL are now used strictly as a modifier * to the way groups are deleted/removed and affect the commands * placed in DCL procedures as well as immediate execution. * - add qualifier /RMGROUP to ADD FILE which implements part * of the semantics formerly under /EXECUTE. Default: /RMGROUP=RETAIN * - add list of keywords to qualifier /EXECUTE to distinguish between * different types of control messages by accepting qualifier values * CHECKGROUPS, NEWGROUP and RMGROUP. If only /EXECUTE is specified, * it defaults to /EXECUTE=(NEWGROUP,RMGROUP). * /EXECUTE=ALL equals /EXECUTE=(CHECKGROUPS,NEWGROUP,RMGROUP). * This permits us to use /EXECUTE qualifier with PGP signature * verification (which presently works only on newgroup & rmgroup * control messages) without fear that Checkgroups control messages * would also be executed, and at the same time keeping * backwards compatibility.
* V6.1b10 17-Aug-1995 Mark Martinec mark.martinec@ijs.si * - removed '#include' since it is already included * from newsinclude.h --> rms.h
* V6.1b10 12-Sep-1996 Mark Martinec mark.martinec@ijs.si * - add parameter avoid_duplicates to add_class_member() * and new routine remove_duplicates_class. This linearizes * the very slow O(n^2) loop while adding many newsgroups * to large classes like $net.
* V6.1b10 4-Nov-1996 mark@infocomm.com * - fixed accvio bug with control checkgroups for groups that * previously didn't have a topic string set. * V6.1b11 26-Mar-1997 Mark Martinec mark.martinec@ijs.si * - new procedure pgp_verify * V6.1b11 14-Apr-1997 Mark Martinec mark.martinec@ijs.si * - add 'const' attributes to control_* routines arguments * - fix the year 2000 problem when generating the 'Date:' header line * - new procedure put_pgp_message(); integrate pgp_verify into * control_newgroup() and control_rmgroup() * V6.1b11 22-May-1997 Mark Martinec mark.martinec@ijs.si * - append_control(): assure proper commenting ($!) of very long lines * - replace single flag EXECUTE_CONTROL with one for each type * of control messages: EXECUTE_CONTROL_CHECKGROUPS, * EXECUTE_CONTROL_NEWGROUP and EXECUTE_CONTROL_RMGROUP. * - flags EXECUTE_CONTROL_RMGROUP_DELETE and * EXECUTE_CONTROL_RMGROUP_LOCAL are now used strictly as a modifier * to the way groups are deleted/removed and affect the commands * placed in DCL procedures as well as immediate execution.
* V6.1b10 30-May-1995 Mark Martinec mark.martinec@ijs.si * - call new routine fit_line to cope with the problem of truncated * 'Unread:' count in the 'Group:' header line of the items display
* V6.1b11 21-Feb-1997 Mark Martinec mark.martinec@ijs.si * - fp_open is now int; pass it by ref; * don't try to delete_file_versions(fpd_open); * V6.1b11 14-Apr-1997 Mark Martinec mark.martinec@ijs.si * - add attribute 'const to hist_check()'s parameter * - fix the year 2000 problem when generating the * 'Date:' header line for CANCEL posting
* V6.1b11 14-Apr-1997 Mark Martinec mark.martinec@ijs.si * - use new variable displ_subjlen to dynamically control the * item title and newsgroup name size on the display, depending * on the current screen width
* V6.1b11 21-Feb-1997 Mark Martinec mark.martinec@ijs.si * - fpd_open/fp_open is now int; pass it by ref; * don't try to delete_file_versions(fpd_open); * V6.1b11 14-Apr-1997 Mark Martinec mark.martinec@ijs.si * - fix the year 2000 problem when generating the missing 'Date:' header
* V6.1b11 14-Apr-1997 Mark Martinec mark.martinec@ijs.si * - add attribute 'const' to several char* parameters * - rewrite check_distribution_string(), scannet() and aliases() * to not modify their parameter * - add length parameter to search_aliases()
* V6.1b10 9-Dec-1996 Mark Pizzolato mark@infocomm.com * - minor DEC C cleanup. * V6.1b11 21-Feb-1997 Mark Martinec mark.martinec@ijs.si * - fp_open is now int; pass it by ref; * don't try to delete_file_versions(fp_open);
* V6.1b10 5-Sep-1996 Mark Martinec mark.martinec@ijs.si * - new routines: new_group, cnvgroup_inmemory_to_filerec, * and cnvgroup_filerec_to_inmemory. For the description * of changes see NEWSDEFINE.H . * - hard-code the largest CPU consumer in the NNTP client: * sscanf(cp,"%s %d %d %s",newsg,&last,&first,mod) * V6.1b11 28-Mar-1997 Mark Martinec mark.martinec@ijs.si * - use new procedures available_proto, proto_name and name_to_proto * to replace frequent code patterns and to make possible * using ANU with different TCP transport library * without changing NEWSRC user files (automatically changes * requested and unavailable TCP library to the one * that is compiled-in with the program). * - abort with NEWS$_NONNTP if NNTP client mode is requested * but the client support code is not compiled-in. * V6.1b11 3-Jun-1997 Mark Martinec mark.martinec@ijs.si * - rms_get(): parameter size is now supposed to be sizeof(buffer) * (inconsistent use lead to a buffer overflow in NEWSPOST) * - initng(): preserve group names longer than GRPNAMELEN_F;
* V6.1b10 14-Sep-1996 Mark Martinec mark.martinec@ijs.si * - add space after "Subject:" and "Message-ID:" when forming headers * V6.1b11 21-Feb-1997 Mark Martinec mark.martinec@ijs.si * - fp_open is now int; pass it by ref; * don't try to delete_file_versions(fp_open);
* V6.1b11 21-Feb-1997 Mark Martinec mark.martinec@ijs.si * - fp_open is now int; pass it by ref; * don't try to delete_file_versions(fp_open);
* V6.1b11 21-Feb-1997 Mark Martinec mark.martinec@ijs.si * - fp_open is now int; pass it by ref; * don't try to delete_file_versions(fp_open); * V6.1b11 14-Apr-1997 Mark Martinec mark.martinec@ijs.si * - add extra parameter (buffer size) to parse_newsgroups() * - fix the year 2000 problem when generating 'Date:' headers * - when generating 'Path:' header as a NNTP client, do not put * our host name into the path - it belongs to the 'Nntp-Posting-Host:' * Puting posting host name in path causes a problem when the posting * host is also running a Usenet server. Articles posted via NNTP * to another server will not propagate to the server which happen * to be running on the posting host.
* V6.1b10 9-Sep-1996 mark.martinec@ijs.si * - to avoid a *big* waste when calling reggroup in a loop for * each group and letting reggroup find THE SAME group in the * ga array by its name using linear search: introduced new routine * reggroup2, which handles both cases (given index or name) * - use binary search routine to locate group by name * V6.1b11 14-Apr-1997 Mark Martinec mark.martinec@ijs.si * - fix the year 2000 problem when generating NEWGROUPS command for the * NNTP server; prefer GMT time over local time in NEWGROUPS command
* V6.1b10 24-Aug-1995 Mark Martinec mark.martinec@ijs.si * - added some checking in read_reg_file() to survive certain * syntax errors in the NEWSRC file without ACCVIO * V6.1b11 28-Mar-1997 Mark Martinec mark.martinec@ijs.si * - use new procedure available_proto to make possible * using ANU with different TCP transport library * without changing NEWSRC user files (automatically changes * requested and unavailable TCP library to the one * that is compiled-in with the program). * V6.1b12 10-Jun-1997 Mark Martinec mark.martinec@ijs.si * - hash_find() used to cause 60% of all page faults with * large number (16000) of newsgroups. Added field arb_readtime * to the GRP structure, avoiding to keep group names in two locations * and avoiding hash+linear searches through names.
* V6.1b11 21-Feb-1997 Mark Martinec mark.martinec@ijs.si * - fp_open is now int; pass it by ref; * don't try to delete_file_versions(fp_open); * - abort with NEWS$_NONNTP if NNTP client mode is requested * but the client support code is not compiled-in.
* V6.1b10 5-Sep-1996 Mark Martinec mark.martinec@ijs.si * - allow for the possibility that node name might be NULL * V6.1b11 21-Feb-1997 Mark Martinec mark.martinec@ijs.si * - change parameter name tmp_name to file_opened and its type to int, * clean logic behind it * - remove \n at the end of generated error messages * - comment out 'Connecting to NNTP server' messages * - change wmg() from macro to a routine to minimize code * - add 'const' attribute to passed read-only strings in: * get_host_adrs, open_net, get_group_topnum, * server_get_newsgroups, nntp_call, post_to_server * - change %s to %.s in sprintf to guard against overwriting buffer * (somewhat arbitrary limits: limit node name to 48 chars; * group name and message id to 200 chars) * - return more informative diagnostics in client_msg * V6.1b11 17-Mar-1997 Mark Martinec mark.martinec@ijs.si * - add procedure getsyserrmsg; * - make NNTP error messages more informative; * - add error messages to nntp_call, nntp_one_call, nntp_one_call * - remove variable cmd_msg, now client_msg contains either * low-level diagnostics or server response. This simplified * and unified error reporting. * - replaced all remaining printf with calls to wmg() * - allow NNTP server to be specified by IP address as well * (not only by dns name) (transports: MULTINET,WIN,TCPWARE) * V6.1b11 28-Mar-1997 Mark Martinec mark.martinec@ijs.si * - new procedures available_proto, proto_name and name_to_proto * to replace frequent code patterns and to make possible * using ANU with different TCP transport library * without changing NEWSRC user files (automatically changes * requested and unavailable TCP library to the one * that is compiled-in with the program). * - clean-up syntactic errors when using UCXSOCKETS * V6.1b11 14-Apr-1997 Mark Martinec mark.martinec@ijs.si * - fix the year 2000 problem when generating NNTP commands * NEWNEWS, NEWGROUPS and XUPDGROUP. Prefer GMT over local time * in these commands. * V6.1b11 3-Jun-1997 Mark Martinec mark.martinec@ijs.si * - add parameters to nntp_read() and nntp_read_line() * (b_m == sizeof(b); returns length in b_len) * - nntp_read() now reads directly into caller's buffer * - several routines: reestablish NNTP connection * in case NNTP server timed out and closed down our link.
* V6.1b10 17-Aug-1995 Mark Martinec mark.martinec@ijs.si * - check for input==NULL in util_*cpy routines to prevent * NEWSUTILITY\xoverni() from failing in case of illegal input * V6.1b10 23-Aug-1995 Mark Martinec mark.martinec@ijs.si * - moved 'sa_l=0' in c$cks_routine() to the inside of 'if', * to prevent clobbering of sa_l in case of c$cks_routine routine * being called from nosysprv() which in turn may be called during * another exception processing from send_signal_array(). * The common symptom was: * %NEWS-E-INVSA, Invalid signal array length, sa_l = 0 * V6.1b10 4-Sep-1995 Mark Martinec mark.martinec@ijs.si * - strip_compress_lower(): convert properly ISO Latin 1 char set * V6.1b11 14-Apr-1997 Mark Martinec mark.martinec@ijs.si * - new routines strnncpy and strnncat (finally got fed up * with programming the same tricks and test over and over again :) * - new routine err_oline_cat to replace common code pattern * - new routine news_strdup to replace common * code pattern: strcpy(news_malloc(strlen(x)+1),x) * V6.1b11 7-May-1997 Mark Martinec mark.martinec@ijs.si * - new routines util_grp_name_str() and util_grp_name_len() * aiding with handling of possibly not '\0'-terminated * group name in the groups file record
* 6.1b10 27-Apr-1995 Bob Sloane sloane@kuhub.cc.ukans.edu * - added Kent Covert's changes to search newsgroup names. * V6.1b11 21-Feb-1997 Mark Martinec mark.martinec@ijs.si * - fp_open is now int; pass it by ref; * don't try to delete_file_versions(fp_open);
* V6.1b11 21-Feb-1997 Mark Martinec mark.martinec@ijs.si * - fp_open, fpa_open and fpd_open are now int; * V6.1b11 28-Mar-1997 Mark Martinec mark.martinec@ijs.si * - use new procedures available_proto, proto_name and name_to_proto * to replace frequent code patterns and to make possible * using ANU with different TCP transport library * without changing NEWSRC user files (automatically changes * requested and unavailable TCP library to the one * that is compiled-in with the program).
* V6.1b10 09-DEC-1996 Mark Pizzolato mark@infocomm.com * - minor declaration cleanup to get warningless compile under * DEC C V5.3 on VAX
* V6.1b11 14-Apr-1997 Mark Martinec mark.martinec@ijs.si * - partially fix dsformatline() to handle narrow displays
* V6.1b10 28-Feb-1996 Mark Pizzolato mark@infocomm.com * - revised SKIM/ITEMS to delete items in reverse numeric order * which will always be quicker on any ODS II file system. * V6.1b10 25-Oct-1996 Mark Pizzolato mark@infocomm.com * - fixed previous reverse order delete to avoid memory leak that * it introduced. * V6.1b10 25-Oct-1996 Mark Pizzolato mark@infocomm.com * - Changed SKIM/ITEMS and SKIM/NEWSGROUPS to process groups in * lexical order when processing all newsgroups. * V6.1b10 02-Dec-1996 Mark Pizzolato mark@infocomm.com * - Changed file delete logic for SKIM/ITEMS to actually delete * files in several AST threads that run in parallel with other SKIM * processing. This allows for much more overlapped I/O (even * overlapped I/O for file deletes since we will potentially be * deleting files for up to n different newsgroups at any one time, * n in this case is specified by the user with SKIM/ITEMS=n, n * defaults to 5, A value of 0 for n disables this AST based * delete processing). * V6.1b11 28-Feb-1997 Mark Martinec mark.martinec@nsc.ijs.si * - remove unused variable list from asynch_search_complete() * and asynch_parse_complete()
* V6.1b10 17-Aug-1995 Mark Martinec mark.martinec@ijs.si * - modify xoverni() to avoid dereferencing NULL pointer in case * of invalid input. * V6.1b10 23-Aug-1996 Mark Martinec mark.martinec@ijs.si * - map_items tried to allocate unreasonably large initial memory chunk * for gap->grp_ia in case when user had once peeked at a newsgroup * with heavy traffic and never visited it again. The attempted * allocation was for all items (now mostly nonexistent) from * the very old and small grp_funread (from the user's newsrc file) * up to the current gap->grp_topnum (now very high). * Solution: clip the initial gap->grp_iasize to gap->grp_count. * It is just an initial allocation - it will grow later if necessary. * The symptom was unreasonably large virtual memory usage, * or: %NEWS-E-ASSERT, Assert failed, expr not true: * "size < MALLOC_SANITY_LIMIT" * V6.1b10 9-Sep-1996 Mark Martinec mark.martinec@ijs.si * - new routines: ga_find_group_by_name (uses binary search), * and test_groups_sorted() * - hand optimize the hot CPU spot in the client: * sprintf(err_oline," %-5d %c %-*.*s %5d", ... * V6.1b10 12-Sep-1996 Mark Martinec mark.martinec@ijs.si * - split module NEWSUTILITY.C into NEWSUTIL[1,2,3].C * because of its size (4800 lines) which made testing tedious. * Also split revision history comments. * NEWSUTIL1 - handles mostly application code, file i/o, * groups and items-related data structures, NNTP, ... * NEWSUTIL2 - more general-purpose routines, formatting, * SMG, error handling, ... * NEWSUTIL3 - support routines needed by NEWS and NNTP_SERVER * (like gen_id() and its support routines) * V6.1b10 09-DEC-1996 Mark Pizzolato mark@infocomm.com * - minor declaration cleanup to get warningless compile under * DEC C V5.3 on VAX * - moved definition of global nntp_currgroup to NEWSVARIABLES.H * this was referenced elsewhere in NEWSREMCLIENT.C. * V6.1b11 21-Feb-1997 Mark Martinec mark.martinec@ijs.si * - cleanup semantics: change parameter name server_name * to file_opened and its type to int * - pass nntp_node as a server name when calling * get_server_file and get_server_header (fixes EXTRACT/TITLE bug) * - clean-up syntactic problems when compiling with NNTP_CLIENT=1 * V6.1b11 14-Apr-1997 Mark Martinec mark.martinec@ijs.si * - get_itm_by_ident() now returns *rg properly even as a nntp client * (READ/REF was failing with ACCVIO) * - change %s to %.s in sprintf to guard against overwriting buffer * (with somewhat arbitrary limits) - some of them still left unchecked * - use new variable displ_subjlen to dynamically control the * item title and newsgroup name size on the display, depending * on the current screen width * - ga_search_name(): perform a caseless search, since we must * store newsgroup names as received from NNTP server exactly * (see RFC977, chapter: 3.2.1. GROUP) but match them * regardless of case.
* V6.1b10 27-Apr-1995 Bob Sloane sloane@kuhub.cc.ukans.edu * - added Kent Covert's definitions for left and right arrow keys. * V6.1b10 12-Sep-1996 Mark Martinec mark.martinec@ijs.si * - split module NEWSUTILITY.C into NEWSUTIL[1,2,3].C * because of its size (4800 lines) which made testing tedious. * Also split revision history comments. * NEWSUTIL1 - handles mostly application code, file i/o, * groups and items-related data structures, NNTP, ... * NEWSUTIL2 - more general-purpose routines, formatting, * SMG, error handling, ... * NEWSUTIL3 - support routines needed by NEWS and NNTP_SERVER * (like gen_id() and its support routines) * V6.1b11 10-May-1997 Mark Martinec mark.martinec@ijs.si * - util_dir: allow group name size to be at most GRPNAMELEN_F chars, * thus accepting also the not necessarily '\0'-terminated * newsgrp.grp_name as a parameter.
* V6.1b10 11-Sep-1996 Mark Martinec mark.martinec@ijs.si * - rewrite gen_id() to generate a non-talking unique message id * and to avoid reading record #1 of groups file where * an undocumented field was used as a sequence number. * Now works the same for NNTP client and full ANU server. * V6.1b10 12-Sep-1996 Mark Martinec mark.martinec@ijs.si * - split module NEWSUTILITY.C into NEWSUTIL[1,2,3].C * because of its size (4800 lines) which made testing tedious. * Also split revision history comments. * NEWSUTIL1 - handles mostly application code, file i/o, * groups and items-related data structures, NNTP, ... * NEWSUTIL2 - more general-purpose routines, formatting, * SMG, error handling, ... * NEWSUTIL3 - support routines needed by NEWS and NNTP_SERVER * (like gen_id() and its support routines)
* V6.1b10 17-Aug-1995 Mark Martinec mark.martinec@ijs.si * - changed first argument of get_head() to be passed by reference * (char *line --> char **line) and changed the code accordingly. * This fixes an elusive bug when server side XOVER was enabled * and an article was read with header line longer than 1024 * characters. get_head() would reallocate the buffer to get * a larger one, but the calling code in xover() kept using * the old (now free-ed) buffer. This led to the reuse of the * old (free) memory in the driver routine write_thread() - but not * until several articles later. * V6.1b10 6-Aug-1995 Mark Pizzolato mark@infocomm.com * - changed logic that writes out the newsbatch files to not write more * than 32750 bytes per call to fputs. Some versions of the VAXCRTL * can't handle fputs with large strings correctly. This logic was * adopted from similar code in NEWSDIST.C. * V6.1b10 10-Dec-1996 Mark Pizzolato mark@infocomm.com * - changed the OPEN_{WRITE|APPEND}_OPT{0|1|2} declarations to * explicitly include "shr=get". This is done since the VAXC rtl * always did this implicitly, but the DEC C RTL seems to default * to "shr=nil" as might actually be expected from reading the * RMS manual. In any case, the real motivation for this is that * some existing batch procedures depended on the "shr=get" * behaviour. * V6.1b11 7-May-1997 Mark Martinec mark.martinec@ijs.si * - move global variables to NEWSVARIABLES.H to assure that common * variables, used by the support routines in modules common * to NEWS and NNTP server, see the same variable declarations. * This also avoids the problem with VAXC which stores 'const int' * in writable psections if they are not defined in the main program, * causing conflicts when linking. * - argparse(): fixed buffer overflow, avoid copying to temp string * - group(): avoid buffer overflow - return '411 no such news group' * if newsgroup name is longer than GRPNAMELEN_F * - sprintf format %.s (where n>512) does not work in VAXC - it * does not write the field. Avoid that. * - fix the year 2000 problem * V6.2.0 19-Jun-1997 Alan Greig A.Greig@tay.ac.uk * - XOVER save to disk code. This code allows ANU News * to save overview info to disk by having the server * rather than the NEWSADD code update the information. * The more frequently read a group the more up-to-date * the information. Stale information should never be returned. * Both XOVER and XOVER_SAVE_TO_DISK must be defined * and then the option can be controlled dynamically * by defining (or undefining) the logical NEWS_DEVICE_OVERVIEW * Normally this would be set as * $ DEFINE/SYS/EXEC NEWS_DEVICE_OVERVIEW NEWS_DEVICE * but could point to a different tree if (say) only * a subset of groups were to be handled this way. * Add the following to your nightly (or weekly) skim * $ delete news_device_overview:[*...]*.nntp;* /log/before="-15-" * This just prevents groups which are only read once * in a blue moon from taking up extra disk space
* V6.1b11 Jun-1997 Alan Greig A.Greig@tay.ac.uk * - XOVER support added
* V6.1b11 3-Jun-1997 Mark Martinec mark.martinec@ijs.si * - replace routines nntp_read and nntp_read_line with newer * from module NEWSREMCLIENT.C
* V6.1b11 3-Jun-1997 Mark Martinec mark.martinec@ijs.si * - replace routines nntp_read and nntp_read_line with newer * from module NEWSREMCLIENT.C
* V6.1b10 9-Dec-1996 Mark Pizzolato mark@infocomm.com * - minor declaration cleanup to get warningless compile under * DEC C V5.3 on VAX * V6.1b11 7-May-1997 Mark Martinec mark.martinec@ijs.si * - decouple group name size (new constant GRPNAMELEN) * from the size of item titles (SUBJLEN) * - decouple the in-memory grp_name size (GRPNAMELEN) from the * size of the groups file record field (GRPNAMELEN_F). * Now the file record may contain group name which is * not '\0'-terminated, thus gaining one character * in the group name length
* V6.1b10 9-Dec-1996 Mark Pizzolato mark@infocomm.com * - minor declaration cleanup to get warningless compile under * DEC C V5.3 on VAX
* V6.1b10 04-Dec-1996 Mark Pizzolato mark@infocomm.com * - added extra build option to allow specification of the compiler on * the command line that invokes this procedure. * - added the compiler used to the stored information in the file * [.news_build]compile.defines, so if the compiler changes, then * the need for a complete rebuild can be determined. * - added NOPARMLIST & KNRFUNC to the warning messages that are * excluded when compiling with DECC (on VAX with DEC C V5.3). * - enabled interpretation of P6 which controls purging of * objects & executables. * - make sure to create object libraries on a forced compile * V6.1b11 14-Jun-1997 Richard Levitte levitte@lp.se * - added file types everywhere. This helps a lot against the * frustration with logical names like, say, "NEWS"...
* V6.2.0 23-May-1997 Mark Martinec mark.martinec@nsc.ijs.si * - Add qualifier /RMGROUP to ADD FILE which implements part * of the semantics formerly under /EXECUTE. Add keywords to * /EXECUTE to enable individual control over execution * of different types of control messages.