gih900@csc.anu.oz (Geoff Huston) (11/25/89)
+-+-+-+ Beginning of part 9 +-+-+-+ X! #define EXP_TIME 20 X #define GRP_TIME 60 X `032 X /* $ GOSUB UNPACK_FILE $ FILE_IS = "NEWSSKIM.DIFF" $ CHECKSUM_IS = 1985494834 $ COPY SYS$INPUT VMS_SHARE_DUMMY.DUMMY X*** [.news_v59_src]newsskim.c X--- [.news_src]newsskim.c $ GOSUB UNPACK_FILE $ FILE_IS = "NEWSSKIP.DIFF" $ CHECKSUM_IS = 1985494834 $ COPY SYS$INPUT VMS_SHARE_DUMMY.DUMMY X*** [.news_v59_src]newsskip.c X--- [.news_src]newsskip.c $ GOSUB UNPACK_FILE $ FILE_IS = "NEWSUTILITY.DIFF" $ CHECKSUM_IS = 1864043527 $ COPY SYS$INPUT VMS_SHARE_DUMMY.DUMMY X*** [.news_v59_src]newsutility.c X--- [.news_src]newsutility.c X************** X*** 1784,1789 X char itemhold[40]; X `032 X newsgroup_status_line(curr_g); X iap = gap->grp_ia; X if (gap->grp_count) X sprintf(tmp,"%s: %d Items (#%d - #%d) %s",gap->grp_name,gap->grp_count, X--- 1784,1790 ----- X char itemhold[40]; X `032 X newsgroup_status_line(curr_g); X+ if (!gap->grp_ia) map_items(curr_g); X iap = gap->grp_ia; X if (gap->grp_count) X sprintf(tmp,"%s: %d Items (#%d - #%d) %s",gap->grp_name,gap->grp_count, $ GOSUB UNPACK_FILE $ FILE_IS = "NEWSV58_UPGRADE.DIFF" $ CHECKSUM_IS = 0 $ COPY SYS$INPUT VMS_SHARE_DUMMY.DUMMY X $ GOSUB UNPACK_FILE $ FILE_IS = "NEWSVARIABLES.DIFF" $ CHECKSUM_IS = 1985494846 $ COPY SYS$INPUT VMS_SHARE_DUMMY.DUMMY X*** [.news_v59_src]newsvariables.h X--- [.news_src]newsvariables.h $ GOSUB UNPACK_FILE $ FILE_IS = "NEWSVMSMAIL.DIFF" $ CHECKSUM_IS = 572078297 $ COPY SYS$INPUT VMS_SHARE_DUMMY.DUMMY X*** [.news_v59_src]newsvmsmail.c X--- [.news_src]newsvmsmail.c X************** X*** 1,7 X /* X **++ X ** FACILITY: X! ** NEWSMAIL X ** X ** ABSTRACT: X ** Routines which use callable mail to map VMS mail into NEWS. X--- 1,7 ----- X /* X **++ X ** FACILITY: X! ** NEWSVMSMAIL X ** X ** ABSTRACT: X ** Routines which use callable mail to map VMS mail into NEWS. X************** X*** 22,28 X **-- X **/ X `012 X! #module NEWSMAIL "V5.8" X `032 X #include "newsinclude.h" X #include "newsdefine.h" X--- 22,28 ----- X **-- X **/ X `012 X! #module NEWSVMSMAIL "V5.8" X `032 X #include "newsinclude.h" X #include "newsdefine.h" X************** X*** 124,129 X `032 X if (!(fn_dsc->dsc$w_length)) return(1); X tmp = malloc(sizeof *tmp); X tmp->folder_name = malloc(fn_dsc->dsc$w_length + 1); X strncpy(tmp->folder_name,fn_dsc->dsc$a_pointer,fn_dsc->dsc$w_length); X tmp->folder_name[fn_dsc->dsc$w_length] = '\0'; X--- 124,130 ----- X `032 X if (!(fn_dsc->dsc$w_length)) return(1); X tmp = malloc(sizeof *tmp); X+ tmp->fnext = 0; X tmp->folder_name = malloc(fn_dsc->dsc$w_length + 1); X strncpy(tmp->folder_name,fn_dsc->dsc$a_pointer,fn_dsc->dsc$w_length); X tmp->folder_name[fn_dsc->dsc$w_length] = '\0'; X************** X*** 728,734 X err_line("\tNot a MAIL folder\n"); X return(0); X `125 X! all = ((news_context == 1) `124`124 (cli$present("ALL") & 1)); X if (cli$get_value(c$dsc("FOLDER"),&f_d,&f_l) == CLI$_ABSENT) `123 X char prm[80]; X `032 X--- 729,735 ----- X err_line("\tNot a MAIL folder\n"); X return(0); X `125 X! all = ((news_context == 1) `124`124 (cli$present(c$dsc("ALL")) & 1)); X if (cli$get_value(c$dsc("FOLDER"),&f_d,&f_l) == CLI$_ABSENT) `123 X char prm[80]; X `032 $ GOSUB UNPACK_FILE $ FILE_IS = "NEWS_HLP.DIFF" $ CHECKSUM_IS = 1985495234 $ COPY SYS$INPUT VMS_SHARE_DUMMY.DUMMY X*** [.news_v59_src]news.hlp X--- [.news_src]news.hlp $ GOSUB UNPACK_FILE $ FILE_IS = "NNTP_CLIENT.DIFF" $ CHECKSUM_IS = 1985494578 $ COPY SYS$INPUT VMS_SHARE_DUMMY.DUMMY X*** [.news_v59_src]nntp_client.c X--- [.news_src]nntp_client.c $ GOSUB UNPACK_FILE $ FILE_IS = "NNTP_DEC.DIFF" $ CHECKSUM_IS = 1985494842 $ COPY SYS$INPUT VMS_SHARE_DUMMY.DUMMY X*** [.news_v59_src]nntp_dec.c X--- [.news_src]nntp_dec.c $ GOSUB UNPACK_FILE $ FILE_IS = "NNTP_DECM.DIFF" $ CHECKSUM_IS = 1985494838 $ COPY SYS$INPUT VMS_SHARE_DUMMY.DUMMY X*** [.news_v59_src]nntp_decm.c X--- [.news_src]nntp_decm.c $ GOSUB UNPACK_FILE $ FILE_IS = "NNTP_FEED.DIFF" $ CHECKSUM_IS = 1565736823 $ COPY SYS$INPUT VMS_SHARE_DUMMY.DUMMY X*** [.news_v59_src]nntp_feed.c X--- [.news_src]nntp_feed.c X************** X*** 31,37 X **-- X **/ X `012 X- #ifdef vax11c X #module NNTP_FEED "V5.8" X #endif X `032 X--- 31,36 ----- X **-- X **/ X `012 X #module NNTP_FEED "V5.8" X `032 X #include "newsinclude.h" X************** X*** 33,39 X `012 X #ifdef vax11c X #module NNTP_FEED "V5.8" X- #endif X `032 X #include "newsinclude.h" X #include "newsdefine.h" X--- 32,37 ----- X **/ X `012 X #module NNTP_FEED "V5.8" X `032 X #include "newsinclude.h" X #include "newsdefine.h" X************** X*** 38,44 X #include "newsinclude.h" X #include "newsdefine.h" X `032 X- #ifdef vax11c X #include iodef X #include lnmdef X #include time X--- 36,41 ----- X #include "newsinclude.h" X #include "newsdefine.h" X `032 X #include iodef X #include lnmdef X #include time X************** X*** 44,55 X #include time X #include psldef X #include signal X- #else X- #include <iodef.h> X- #include <lnmdef.h> X- #include <time.h> X- #include <psldef.h> X- #endif X `032 X #define LOG_TABLE "LNM$SYSTEM" X `032 X--- 41,46 ----- X #include time X #include psldef X #include signal X `032 X #define LOG_TABLE "LNM$SYSTEM" X `032 X************** X*** 62,68 X `032 X #define CMUTCP 1 X #define WINTCP 2 X! #define SRITCP 3 X `032 X #ifdef TWG X #define TWG 1 X--- 53,59 ----- X `032 X #define CMUTCP 1 X #define WINTCP 2 X! #define MULTINETTCP 3 X `032 X #ifdef TWG X #define TWG 1 X************** X*** 67,74 X #ifdef TWG X #define TWG 1 X #else X! #ifdef SRI X! #define SRI 1 X #endif X #endif X `032 X--- 58,65 ----- X #ifdef TWG X #define TWG 1 X #else X! #ifdef MULTINET X! #define MULTINET 1 X #endif X #endif X `032 X************** X*** 72,78 X #endif X #endif X `032 X! #if TWG `124`124 SRI X #include <types.h> X #include <socket.h> X #include <netdb.h> X--- 63,69 ----- X #endif X #endif X `032 X! #if TWG `124`124 MULTINET X #include <types.h> X #include <socket.h> X #include <netdb.h> X************** X*** 153,159 X datum[32], X logfile[256], X dbgfile[256], X! idfile[256]; X `012 X dat() X `123 X--- 144,151 ----- X datum[32], X logfile[256], X dbgfile[256], X! idfile[256], X! `009tmpf[256]; X `012 X dat() X `123 X************** X*** 422,430 X `125 X #if TWG X else if (proto == WINTCP) `123 X! if (sys$assign(c$dsc("INET:"),&net_chan,0,0) & 1) `123 X! #elif SRI X! else if (proto == SRITCP) `123 X if (sys$assign(c$dsc("INET0:"),&net_chan,0,0) & 1) `123 X #endif X #if TWG `124`124 SRI X--- 414,421 ----- X `125 X #if TWG X else if (proto == WINTCP) `123 X! #elif MULTINET X! else if (proto == MULTINETTCP) `123 X if (sys$assign(c$dsc("INET0:"),&net_chan,0,0) & 1) `123 X #endif X `032 X************** X*** 427,433 X else if (proto == SRITCP) `123 X if (sys$assign(c$dsc("INET0:"),&net_chan,0,0) & 1) `123 X #endif X! #if TWG `124`124 SRI X if ((sys$qiow(0,net_chan,IO$_SOCKET,&read_iosb,0,0, X AF_INET,SOCK_STREAM,0,0,0,0) & 1) && X (read_iosb.iostatus & 1)) `123 X--- 418,425 ----- X else if (proto == MULTINETTCP) `123 X if (sys$assign(c$dsc("INET0:"),&net_chan,0,0) & 1) `123 X #endif X!`032 X! #if TWG `124`124 MULTINET X if ((sys$qiow(0,net_chan,IO$_SOCKET,&read_iosb,0,0, X AF_INET,SOCK_STREAM,0,0,0,0) & 1) && X (read_iosb.iostatus & 1)) `123 X************** X*** 453,459 X `125 X #endif X else `123 X! sprintf(netobj,"%s::\"NEWS=\"",node); X return(sys$assign(c$dsc(netobj),&net_chan,0,0) & 1); X `125 X `125 X--- 445,451 ----- X `125 X #endif X else `123 X! sprintf(netobj,"%s::\"TASK=NNTP\"",node); X return(sys$assign(c$dsc(netobj),&net_chan,0,0) & 1); X `125 X `125 X************** X*** 482,488 X `032 X toggle_link() X `123 V! if (!nntp_write("YCMND") `124`124 (!(wait_net_response(RESP_TIMER,1)))) X `123 X if (*net_open_chan) `123 X close_net(); X printf("Lost connection to NEWS SERVER ([%c] %s)", X--- 474,480 ----- X `032 X toggle_link() X `123 V! if (!nntp_write("STAT") `124`124 (!(wait_net_response(RESP_TIMER,1)))) X `123 X if (*net_open_chan) `123 X close_net(); X printf("Lost connection to NEWS SERVER ([%c] %s)", X************** X*** 514,520 X /* X * open_rem_chan X * X! * Open channel to remote NNTP server on host name node, using protocol X * proto_num (3 == SRITCP, 2 == WINTCP, 1 == CMUTCP, 0 = DECNET) X */ X `032 X--- 506,512 ----- X /* X * open_rem_chan X * X! * proto_num (3 == MULTINETTCP, 2 == WINTCP, 1 == CMUTCP, 0 = DECNET) X * proto_num (3 == SRITCP, 2 == WINTCP, 1 == CMUTCP, 0 = DECNET) X */ X `032 X************** X*** 588,594 X if (lines_written) `123 X while (fgets(inpstr,132,fpr)) fprintf(fpw,"%s",inpstr); X fclose(fpw); X! lib$rename_file(c$dsc("nntpfeed.tmp"),c$dsc(idfile), X 0,0,0,0,0,0,0,0,0,0); X strcat(idfile,";-1"); X delete(idfile); X--- 580,586 ----- X if (lines_written) `123 X while (fgets(inpstr,132,fpr)) fprintf(fpw,"%s",inpstr); X fclose(fpw); X! lib$rename_file(c$dsc(tmpf),c$dsc(idfile), X 0,0,0,0,0,0,0,0,0,0); X strcat(idfile,";-1"); X delete(idfile); X************** X*** 595,601 X `125 X else `123 X fclose(fpw); X! delete("nntpfeed.tmp;"); X `125 X if (type==MAX_OFFERED) `123 X `009int len = 3; X--- 587,593 ----- X `125 X else `123 X fclose(fpw); X! delete(tmpf); X `125 X if (type==MAX_OFFERED) `123 X `009int len = 3; X************** X*** 756,764 X `032 X #if TWG X if (tolower(*proto) == 't') proto_num = WINTCP; X! if (tolower(*proto) == 'w') proto_num = WINTCP; X! #elif SRI X! if (tolower(*proto) == 't') proto_num = SRITCP; X if (tolower(*proto) == 's') proto_num = SRITCP; X #else X if (tolower(*proto) == 't') proto_num = CMUTCP; X--- 748,756 ----- X `032 X #if TWG X if (tolower(*proto) == 't') proto_num = WINTCP; X! #elif MULTINET X! if (tolower(*proto) == 't') proto_num = MULTINETTCP; X! if (tolower(*proto) == 'm') proto_num = MULTINETTCP; X if (tolower(*proto) == 's') proto_num = SRITCP; X #else X if (tolower(*proto) == 't') proto_num = CMUTCP; X************** X*** 771,777 X exit(1); X `125 X if (cp = strchr(idfile,';')) *cp = '\0'; X! fpw = fopen("nntpfeed.tmp","w"); X if(debugging) fpd = fopen(dbgfile,"w"); X `032 X printf("\tConnecting to NEWS SERVER on node %s:: ...\n",node); X--- 763,774 ----- X exit(1); X `125 X if (cp = strchr(idfile,';')) *cp = '\0'; X! strcpy(tmpf,idfile); X! if (cp = strrchr(tmpf,']')) cp++; X! else if (cp = strrchr(tmpf,':')) cp++; X! else cp = tmpf; X! sprintf(cp,"NNTP_%X.TMP",getpid()); `032 X! fpw = fopen(tmpf,"w"); X if(debugging) fpd = fopen(dbgfile,"w"); X `032 X printf("\tConnecting to NEWS SERVER on node %s:: ...\n",node); $ GOSUB UNPACK_FILE $ FILE_IS = "NNTP_SERVER.DIFF" $ CHECKSUM_IS = 996230204 $ COPY SYS$INPUT VMS_SHARE_DUMMY.DUMMY X*** [.news_v59_src]nntp_server.c X--- [.news_src]nntp_server.c X************** X*** 90,96 X #define LOG_TABLE "LNM$SYSTEM" X `032 X /* file names */ X! #define NEWSBATCH "NEWS_MANAGER:NNTP.BATCH" X `032 V #define CLOSE_LINK 0 /* Status flags passed between server and drive Xr */ X #define NO_INPUT 0 X--- 90,97 ----- X #define LOG_TABLE "LNM$SYSTEM" X `032 X /* file names */ X! #define NEWSBATCH "NEWS_MANAGER:NNTP_%X.BATCH" X! #define NEWS_BATCH_SIZE 250000 X `032 V #define CLOSE_LINK 0 /* Status flags passed between server and drive Xr */ X #define NO_INPUT 0 X************** X*** 259,265 X GRP newsgrp; /* newsgroup i/o buffer */ X `032 X static X! int mail_add_expiry; X `032 X sysprv() X `123 X--- 260,267 ----- X GRP newsgrp; /* newsgroup i/o buffer */ X `032 X static X! int mail_add_expiry, X! ihave_size = 0; X `032 X sysprv() X `123 X************** X*** 1102,1107 X fseek(fpr,0,0); X while (fgets(xfrbuf,IO_SIZE,fpr)) `123 X if (*xfrbuf == '\n') break; X if (isspace(*xfrbuf)) `123 X if (curr_line) `123 V curr_line = realloc(curr_line,strlen(curr_line) + strlen(xfrbuf) + X 1); X--- 1104,1111 ----- X fseek(fpr,0,0); X while (fgets(xfrbuf,IO_SIZE,fpr)) `123 X if (*xfrbuf == '\n') break; X+ if (xfrbuf[strlen(xfrbuf)-1]=='\n') X+ xfrbuf[strlen(xfrbuf)-1]='\0'; /* remove newline (POK) */ X if (isspace(*xfrbuf)) `123 X if (curr_line) `123 V curr_line = realloc(curr_line,strlen(curr_line) + strlen(xfrbuf) + X 1); X************** X*** 1247,1256 X `032 X static X add_item(fn,mode,msgbuf,stm) X! char *fn; X! int mode; X! char *msgbuf; X! int stm; X `123 X FILE *fpr, X *fpw; X--- 1251,1260 ----- X `032 X static X add_item(fn,mode,msgbuf,stm) X! char *fn; X! int mode; X! char *msgbuf; X! int stm; X `123 X FILE *fpr, X *fpw; X************** X*** 1252,1260 X char *msgbuf; X int stm; X `123 X! FILE *fpr, X! *fpw; X! char line[BUFF_STRLEN]; X `032 X if (mode == POST) return(post_add_item(fn,msgbuf,stm)); X `032 X--- 1256,1266 ----- X char *msgbuf; X int stm; X `123 X! FILE *fpr, X! *fpw; X! char line[BUFF_STRLEN], X! batch[FILE_STRLEN]; X! struct stat sbuffer; X `032 X if (mode == POST) return(post_add_item(fn,msgbuf,stm)); X `032 X************** X*** 1256,1262 X *fpw; X char line[BUFF_STRLEN]; X `032 X! if (mode == POST) return(post_add_item(fn,msgbuf,stm)); X `032 X if (!(fpr = fopen(fn,"r"))) `123 X strcpy(msgbuf,"File handler error in NNTP Server."); X--- 1262,1268 ----- X batch[FILE_STRLEN]; X struct stat sbuffer; X `032 X! if (mode == POST) return(post_add_item(fn,msgbuf,stm)); X `032 X if (!(fpr = fopen(fn,"r"))) `123 X strcpy(msgbuf,"File handler error in NNTP Server."); X************** X*** 1258,1277 X `032 X if (mode == POST) return(post_add_item(fn,msgbuf,stm)); X `032 X! if (!(fpr = fopen(fn,"r"))) `123 X! strcpy(msgbuf,"File handler error in NNTP Server."); -+-+-+-+-+ End of part 9 +-+-+-+-+-