diff options
Diffstat (limited to 'utils/inews')
-rw-r--r-- | utils/inews/Makefile | 69 | ||||
-rw-r--r-- | utils/inews/Manifest | 11 | ||||
-rw-r--r-- | utils/inews/README | 55 | ||||
-rw-r--r-- | utils/inews/README.NN | 83 | ||||
-rw-r--r-- | utils/inews/clientlib.c | 525 | ||||
-rw-r--r-- | utils/inews/clientlib.h | 11 | ||||
-rw-r--r-- | utils/inews/conf.h | 146 | ||||
-rw-r--r-- | utils/inews/config.h | 392 | ||||
-rw-r--r-- | utils/inews/config.h-dist | 392 | ||||
-rw-r--r-- | utils/inews/inews.c | 392 | ||||
-rw-r--r-- | utils/inews/nntp.h | 73 | ||||
-rw-r--r-- | utils/inews/version.c | 5 |
12 files changed, 0 insertions, 2154 deletions
diff --git a/utils/inews/Makefile b/utils/inews/Makefile deleted file mode 100644 index 0380e783..00000000 --- a/utils/inews/Makefile +++ /dev/null @@ -1,69 +0,0 @@ -# Makefile for NN version of mini inews. -# -# @RCSfile: Makefile,v @ @Revision: 1.3 @ -# -# @Author: news @ @Date: 89/12/21 17:59:52 @ -# -# @State: Exp @ @Locker: @ -# -# @Log: Makefile,v @ -# Revision 1.3 89/12/21 17:59:52 news -# Added kit processing, cleanups. -# - -TARGET = inews - -BINDIR = /usr/lib/news/ -SHELL = /bin/sh - -CC = cc -# General definitions here which apply to all -- form -DDEF -DEFS = -DFOR_NN -# Link libraries -- form -lLIB -LIBS = -lsocket -lnsl -lucb -# Lint definitions -- same as DEFS, but form -D DEF -LDEFS = -D lint -D FOR_NN -# Lint libraries -- same as LIBS, but form -l LIB -LLIBS = -# Set to -g for debugging, -O for optimise, or both if compiler handles it -DEBUG = -O -CFLAGS = $(DEBUG) $(DEFS) -I.. -I../conf -L/usr/ucblib - -SRCS = inews.c clientlib.c version.c -OBJS = inews.o clientlib.o version.o -CLUDES = clientlib.h conf.h nntp.h -KIT = Makefile README README.NN $(SRCS) $(CLUDES) - -$(TARGET): $(OBJS) - $(CC) $(CFLAGS) -o $(TARGET) $(OBJS) $(LIBS) - -$(OBJS): $(CLUDES) - -all: $(TARGET) - -Manifest: $(KIT) - touch Manifest - rm -f foo - ls -ls Manifest $(KIT) > foo - mv foo Manifest - ls -ls Manifest $(KIT) > foo - mv foo Manifest - -kit: Manifest - shar Manifest $(KIT) > inews.shar - -clean: - rm -f $(OBJS) core lint tags - -clobber: clean - rm -f $(TARGET) Make.Log Manifest $(KIT) - -lint: $(SRCS) - lint -D lint $(LLIBES) $(LDEFS) $(SRCS) > lint - -tags: $(SRCS) - ctags $(SRCS) - -install: $(TARGET) - ../inst inews $(TARGET) -# install -o news -g news -m 511 -s -c $(TARGET) $(BINDIR) diff --git a/utils/inews/Manifest b/utils/inews/Manifest deleted file mode 100644 index c3d99bcf..00000000 --- a/utils/inews/Manifest +++ /dev/null @@ -1,11 +0,0 @@ - 2 -r--r--r-- 1 news 1406 Dec 21 18:00 Makefile - 1 -rw-r--r-- 1 news 649 Dec 21 18:00 Manifest - 3 -r--r--r-- 1 news 2391 Dec 21 18:00 README - 2 -r--r--r-- 1 news 1863 Dec 21 18:00 README.NN - 11 -r--r--r-- 1 news 11154 Dec 21 18:00 clientlib.c - 1 -r--r--r-- 1 news 230 Dec 21 18:00 clientlib.h - 4 -r--r--r-- 1 news 3106 Dec 21 18:00 conf.h - 8 -r--r--r-- 1 news 7983 Dec 21 18:00 inews.c - 3 -r--r--r-- 1 news 2530 Dec 21 18:00 nntp.h - 3 -r--r--r-- 1 news 2167 Dec 21 18:00 uname.c - 1 -r--r--r-- 1 news 103 Dec 21 18:00 version.c diff --git a/utils/inews/README b/utils/inews/README deleted file mode 100644 index 1ce496d6..00000000 --- a/utils/inews/README +++ /dev/null @@ -1,55 +0,0 @@ - - This is a "pseudo" inews which allows remote posting using -the NNTP server. Essentially it takes a bunch of arguments and ignores -ones starting with "-", expecting to find at least one which is -a file name. If no files are specified, it uses standard input -as the input file. - - It then opens a connection to the NNTP server on the remote -machine and blasts the article across. It then closes the connection. -If it doesn't find a From: or Path: line, it inserts them, in the -default format - - From: login@hostname.DOMAIN (Full_name) - Path: hostname!login - -where DOMAIN is a #define in ./conf.h, and should be changed to reflect -your system. A good choice is "UUCP" if you are not a member of the -Internet. "Full_name" understands the & hack in password files. If -"HIDDENNET" is defined in ./conf.h, DOMAIN is used as the complete host -name, and the format used is - - From: login@DOMAIN (Full_name) - Path: login - - "hostname" is figured out by what you've #defined in ../config.h. -If you have defined GHNAME, it uses the gethostname() call. -If you've defined UUNAME, it figured it out from the file -/etc/uucpname. Finally, if neither is defined it gets it from -/usr/include/whoami.h. If you have GHNAME defined and your -gethostname() returns your fully-qualified Internet name, -undefine DOMAIN. - - The point here is that the thing looks like inews to any program -which would care to post something (e.g., Pnews, postnews, what have -you). The difference is that the article will look like it was posted -on the remote end, not on the local end. Please note that "postnews" -(nor any of the other standard news programs) is not required for -rrn/nntp on client machines. - - The "test*" files in this directory provide some good test -material for inews; you can just redirect inews to take input from -them or whatever. - - Thanks to Steven Grady <grady@postgres.berkeley.edu> for -writing this, and for wasting a lot of his valuable time dealing -with the can-o'-worms that is the real inews. - -BUGS: - - This version of inews doesn't handle real inews options. As -a result, some posting programs (notably the Gnumacs front end) will -fail if they use this program. In the interests of simplicity, I -have no plans for modifying mini-inews to handle real-inews options. -However, if you'd like to send me diffs I'll be more than happy to -install them for the next release. diff --git a/utils/inews/README.NN b/utils/inews/README.NN deleted file mode 100644 index dea4036f..00000000 --- a/utils/inews/README.NN +++ /dev/null @@ -1,83 +0,0 @@ -From: Steve Simmons <scs%itivax@relay.EU.net> -To: storm@texas.dk (Kim F. Storm) -Date: Thu, 21 Dec 89 18:02:03 EDT -Subject: Inews Kit For NN - -What Is This: - -This is a mini-inews, suitable for building client-only versions of NN -that use NNTP for remote reading. Some unknown (to me) person patched -it to be driven on NNs config.h file. I have taken those changes, reversed -most of them and upgraded to NNTP release version 1.5.7. This inews was -a co-operative venture when Stan released it, and it's kind of fitting -that it continues to be worked on by many hands. - -If you have a full installation of news where you're installing NN, -you could care less about this. - -Copyrights: - -See individual files for authors. I wrote conf.h and the -Makefile, and explicitly put them in the public domain. Other parts -may have other copyrights, see the individual files. - -Maintenance: - -My less-than-humble opinion is that as Stan releases nntp patches, you will -be able to apply them to this code with no changes whatsoever. As Stan -releases patches I will attempt to apply them and upgrade this source, -but no guarantees. - -Why A Separate Release From NNTP: - -NN and NNTP both use configuration files to let you fit the software -for your system. Unfortunately, they used rather different methods. -This release specificly reconciles NNs 'config.h' and NNTPs '../common/conf.h' -by creating a local "conf.h" which maps 'config.h' to what NNTP inews needs. -Result -- once you build the config.h for NN you're 98% done with NNTP inews. - -INSTALLATION: - -Ideally you went to your nn source directory and created a subdir -named inews. Then you unpacked this in that directory (I have already -done that, ++Kim). - -All you should need to do is read conf.h, make any changes you feel -like, and then type 'make'. If things work, type 'make install'. For -more data on the inews itself, read the file README. It's slightly -edited from the NNTP version to reflect its separation from the rest -of NNTP. - -For more data on the inews itself, read the file README. It's -slightly edited from the NNTP version to reflect its separation from -the rest of NNTP. - -Steve Simmons -scs@lokkur.dexter.mi.us -December 21, 1989 - - ---- Changes by Kim Storm, storm@texas.dk - -I have edited what Steve sent me a bit further to simplify the -configuration and installation even more: It now uses nn's code to get -the hostname, so this is now got for free, and it gets the location of -the inews program from config.h as well. - -Makefile: - Added -I../conf to CFLAGS - nn's hostname.o is used instead of uname.o to get the hostname. - Installation uses nn's inst script (which will use the possible - definition of INEWS or NEWS_LIB_DIRECTORY in config.h). - -conf.h: - #defines to set the proper hostname removed. - #include "../config.h" line moved to start of file. - Documents optional #define USG to get bcopy function. - -clientlib.c, inews.c - Added tweaks using a FOR_NN #define to include/exclude - code to co-exist with nn's config.h file. - -uname.c: - Not used (so it is omitted from this distribution). diff --git a/utils/inews/clientlib.c b/utils/inews/clientlib.c deleted file mode 100644 index c06c3b6f..00000000 --- a/utils/inews/clientlib.c +++ /dev/null @@ -1,525 +0,0 @@ -#ifndef lint -static char *sccsid = "@(#)clientlib.c 1.11 (Berkeley) 10/27/89"; -#endif - -/* - * NNTP client routines. - */ - -/* - * Include configuration parameters only if we're made in the nntp tree. - */ - -#ifdef FOR_NN -#include "conf.h" -#endif - -#ifdef NNTPSRC -#include "../config.h" -#endif NNTPSRC - -#include <stdio.h> -#ifndef FOR_NN -#include <sys/types.h> -#endif -#ifdef FOR_NN -#if !defined(NETWORK_DATABASE) || defined(NETWORK_BYTE_ORDER) -#include <netinet/in.h> -#endif -#else -#include <netinet/in.h> -#endif -#include <sys/socket.h> -#ifndef EXCELAN -# include <netdb.h> -#endif /* !EXCELAN */ - -#include <string.h> - -#ifdef EXCELAN -# define IPPORT_NNTP 119 -#endif - -#ifdef DECNET -#include <netdnet/dn.h> -#include <netdnet/dnetdb.h> -#endif /* DECNET */ - -#include "nntp.h" - -FILE *ser_rd_fp = NULL; -FILE *ser_wr_fp = NULL; - -/* - * getserverbyfile Get the name of a server from a named file. - * Handle white space and comments. - * Use NNTPSERVER environment variable if set. - * - * Parameters: "file" is the name of the file to read. - * - * Returns: Pointer to static data area containing the - * first non-ws/comment line in the file. - * NULL on error (or lack of entry in file). - * - * Side effects: None. - */ - -char * -getserverbyfile(file) -char *file; -{ - register FILE *fp; - register char *cp; - static char buf[256]; - char *getenv(); - - if (cp = getenv("NNTPSERVER")) { - (void) strcpy(buf, cp); - return (buf); - } - - if (file == NULL) - return (NULL); - - fp = fopen(file, "r"); - if (fp == NULL) - return (NULL); - - while (fgets(buf, sizeof (buf), fp) != NULL) { - if (*buf == '\n' || *buf == '#') - continue; - cp = strchr(buf, '\n'); - if (cp) - *cp = '\0'; - (void) fclose(fp); - return (buf); - } - - (void) fclose(fp); - return (NULL); /* No entry */ -} - - -/* - * server_init Get a connection to the remote news server. - * - * Parameters: "machine" is the machine to connect to. - * - * Returns: -1 on error - * server's initial response code on success. - * - * Side effects: Connects to server. - * "ser_rd_fp" and "ser_wr_fp" are fp's - * for reading and writing to server. - */ - -server_init(machine) -char *machine; -{ - int sockt_rd, sockt_wr; - char line[256]; -#ifdef DECNET - char *cp; - - cp = strchr(machine, ':'); - - if (cp && cp[1] == ':') { - *cp = '\0'; - sockt_rd = get_dnet_socket(machine); - } else - sockt_rd = get_tcp_socket(machine); -#else - sockt_rd = get_tcp_socket(machine); -#endif - - if (sockt_rd < 0) - return (-1); - - /* - * Now we'll make file pointers (i.e., buffered I/O) out of - * the socket file descriptor. Note that we can't just - * open a fp for reading and writing -- we have to open - * up two separate fp's, one for reading, one for writing. - */ - - if ((ser_rd_fp = fdopen(sockt_rd, "r")) == NULL) { - perror("server_init: fdopen #1"); - return (-1); - } - - sockt_wr = dup(sockt_rd); - if ((ser_wr_fp = fdopen(sockt_wr, "w")) == NULL) { - perror("server_init: fdopen #2"); - ser_rd_fp = NULL; /* from above */ - return (-1); - } - - /* Now get the server's signon message */ - - (void) get_server(line, sizeof(line)); - return (atoi(line)); -} - - -/* - * get_tcp_socket -- get us a socket connected to the news server. - * - * Parameters: "machine" is the machine the server is running on. - * - * Returns: Socket connected to the news server if - * all is ok, else -1 on error. - * - * Side effects: Connects to server. - * - * Errors: Printed via perror. - */ - -get_tcp_socket(machine) -char *machine; -{ - int s; - struct sockaddr_in sin; -#ifndef EXCELAN - struct servent *getservbyname(), *sp; - struct hostent *gethostbyname(), *hp; -#ifdef h_addr - int x = 0; - register char **cp; -#endif h_addr - - if ((sp = getservbyname("nntp", "tcp")) == NULL) { - fprintf(stderr, "nntp/tcp: Unknown service.\n"); - return (-1); - } - - /* - * Name resolution doesn't quite go as far as it should. Take things - * one stage further to allow nnn.nnn.nnn.nnn addresses if all else - * fails. - */ - if( (hp = gethostbyname( machine ) ) == NULL ) { - unsigned long inet_addr(); - static struct hostent def; - static struct in_addr defaddr; - static char *alist[1]; - static char namebuf[ 256 ]; - defaddr.s_addr = inet_addr( machine ); - if( defaddr.s_addr != -1 ) { - strcpy( namebuf, machine ); - def.h_name = namebuf; -#ifdef h_addr - def.h_addr_list = alist; -#endif - def.h_addr = (char *)&defaddr; - def.h_length = sizeof( struct in_addr ); - def.h_addrtype = AF_INET; - def.h_aliases = 0; - hp = &def; - } - } - if (hp == NULL) { - fprintf(stderr, "%s: Unknown host.\n", machine); - return (-1); - } - - memset((char *) &sin, '\0', sizeof(sin)); - sin.sin_family = hp->h_addrtype; - sin.sin_port = sp->s_port; -#else - memset((char *) &sin, '\0', sizeof(sin)); - sin.sin_family = AF_INET; - sin.sin_port = htons(IPPORT_NNTP); -#endif /* !EXCELAN */ - - /* - * The following is kinda gross. The name server under 4.3 - * returns a list of addresses, each of which should be tried - * in turn if the previous one fails. However, 4.2 hostent - * structure doesn't have this list of addresses. - * Under 4.3, h_addr is a #define to h_addr_list[0]. - * We use this to figure out whether to include the NS specific - * code... - */ - -#ifdef h_addr - - /* get a socket and initiate connection -- use multiple addresses */ - - for (cp = hp->h_addr_list; cp && *cp; cp++) { - s = socket(hp->h_addrtype, SOCK_STREAM, 0); - if (s < 0) { - perror("socket"); - return (-1); - } - memcpy(*cp, (char *)&sin.sin_addr, hp->h_length); - - if (x < 0) - fprintf(stderr, "trying %s\n", inet_ntoa(sin.sin_addr)); - x = connect(s, (struct sockaddr *)&sin, sizeof (sin)); - if (x == 0) - break; - fprintf(stderr, "connection to %s: ", inet_ntoa(sin.sin_addr)); - perror(""); - (void) close(s); - } - if (x < 0) { - fprintf(stderr, "giving up...\n"); - return (-1); - } -#else /* no name server */ -#ifdef EXCELAN - if ((s = rresvport(SO_KEEPALIVE)) < 0) - { - /* Get the socket */ - perror("socket"); - return (-1); - } - /* set up addr for the connect */ - sin.sin_addr.s_addr = rhost(machine); - if (sin.sin_addr.s_addr < 0){ - fprintf(stderr, "%s: Unknown host.\n", machine); - return (-1); - } - /* And then connect */ - - if (connect(s, &sin) < 0) { - perror("connect"); - (void) close(s); - return (-1); - } -#else - if ((s = socket(AF_INET, SOCK_STREAM, 0)) < 0) { - perror("socket"); - return (-1); - } - - /* And then connect */ - - memcpy(hp->h_addr, (char *) &sin.sin_addr, hp->h_length); - if (connect(s, (struct sockaddr *) &sin, sizeof(sin)) < 0) { - perror("connect"); - (void) close(s); - return (-1); - } - -#endif /* !EXCELAN */ -#endif - - return (s); -} - -#ifdef DECNET -/* - * get_dnet_socket -- get us a socket connected to the news server. - * - * Parameters: "machine" is the machine the server is running on. - * - * Returns: Socket connected to the news server if - * all is ok, else -1 on error. - * - * Side effects: Connects to server. - * - * Errors: Printed via nerror. - */ - -get_dnet_socket(machine) -char *machine; -{ - int s, area, node; - struct sockaddr_dn sdn; - struct nodeent *getnodebyname(), *np; - - memset((char *) &sdn, '\0', sizeof(sdn)); - - switch (s = sscanf( machine, "%d%*[.]%d", &area, &node )) { - case 1: - node = area; - area = 0; - case 2: - node += area*1024; - sdn.sdn_add.a_len = 2; - sdn.sdn_family = AF_DECnet; - sdn.sdn_add.a_addr[0] = node % 256; - sdn.sdn_add.a_addr[1] = node / 256; - break; - default: - if ((np = getnodebyname(machine)) == NULL) { - fprintf(stderr, - "%s: Unknown host.\n", machine); - return (-1); - } else { - memcpy(np->n_addr, - (char *) sdn.sdn_add.a_addr, - np->n_length); - sdn.sdn_add.a_len = np->n_length; - sdn.sdn_family = np->n_addrtype; - } - break; - } - sdn.sdn_objnum = 0; - sdn.sdn_flags = 0; - sdn.sdn_objnamel = strlen("NNTP"); - memcpy("NNTP", &sdn.sdn_objname[0], sdn.sdn_objnamel); - - if ((s = socket(AF_DECnet, SOCK_STREAM, 0)) < 0) { - nerror("socket"); - return (-1); - } - - /* And then connect */ - - if (connect(s, (struct sockaddr *) &sdn, sizeof(sdn)) < 0) { - nerror("connect"); - close(s); - return (-1); - } - - return (s); -} -#endif - - - -/* - * handle_server_response - * - * Print some informative messages based on the server's initial - * response code. This is here so inews, rn, etc. can share - * the code. - * - * Parameters: "response" is the response code which the - * server sent us, presumably from "server_init", - * above. - * "server" is the news server we got the - * response code from. - * - * Returns: -1 if the error is fatal (and we should exit). - * 0 otherwise. - * - * Side effects: None. - */ - -handle_server_response(response, server) -int response; -char *server; -{ - switch (response) { - case OK_NOPOST: /* fall through */ - printf( - "NOTE: This machine does not have permission to post articles.\n"); - printf( - " Please don't waste your time trying.\n\n"); - - case OK_CANPOST: - return (0); - break; - - case ERR_ACCESS: - printf( - "This machine does not have permission to use the %s news server.\n", - server); - return (-1); - break; - - default: - printf("Unexpected response code from %s news server: %d\n", - server, response); - return (-1); - break; - } - /*NOTREACHED*/ -} - - -/* - * put_server -- send a line of text to the server, terminating it - * with CR and LF, as per ARPA standard. - * - * Parameters: "string" is the string to be sent to the - * server. - * - * Returns: Nothing. - * - * Side effects: Talks to the server. - * - * Note: This routine flushes the buffer each time - * it is called. For large transmissions - * (i.e., posting news) don't use it. Instead, - * do the fprintf's yourself, and then a final - * fflush. - */ - -void -put_server(string) -char *string; -{ -#ifdef DEBUG - fprintf(stderr, ">>> %s\n", string); -#endif - fprintf(ser_wr_fp, "%s\r\n", string); - (void) fflush(ser_wr_fp); -} - - -/* - * get_server -- get a line of text from the server. Strips - * CR's and LF's. - * - * Parameters: "string" has the buffer space for the - * line received. - * "size" is the size of the buffer. - * - * Returns: -1 on error, 0 otherwise. - * - * Side effects: Talks to server, changes contents of "string". - */ - -get_server(string, size) -char *string; -int size; -{ - register char *cp; - - if (fgets(string, size, ser_rd_fp) == NULL) - return (-1); - - if ((cp = strchr(string, '\r')) != NULL) - *cp = '\0'; - else if ((cp = strchr(string, '\n')) != NULL) - *cp = '\0'; -#ifdef DEBUG - fprintf(stderr, "<<< %s\n", string); -#endif - - return (0); -} - - -/* - * close_server -- close the connection to the server, after sending - * the "quit" command. - * - * Parameters: None. - * - * Returns: Nothing. - * - * Side effects: Closes the connection with the server. - * You can't use "put_server" or "get_server" - * after this routine is called. - */ - -void -close_server() -{ - char ser_line[256]; - - if (ser_wr_fp == NULL || ser_rd_fp == NULL) - return; - - put_server("QUIT"); - (void) get_server(ser_line, sizeof(ser_line)); - - (void) fclose(ser_wr_fp); - (void) fclose(ser_rd_fp); -} - diff --git a/utils/inews/clientlib.h b/utils/inews/clientlib.h deleted file mode 100644 index 0c1137f7..00000000 --- a/utils/inews/clientlib.h +++ /dev/null @@ -1,11 +0,0 @@ -/* - * Definitions for NNTP client routines. - * - * @(#)clientlib.h 1.1 (Berkeley) 1/9/88 - */ - -extern char *getserverbyfile(); -extern int server_init(); -extern void put_server(); -extern int get_server(); -extern void close_server(); diff --git a/utils/inews/conf.h b/utils/inews/conf.h deleted file mode 100644 index 0e6849dc..00000000 --- a/utils/inews/conf.h +++ /dev/null @@ -1,146 +0,0 @@ -/* - * Configuration file for nn version of nntp inews. Written by - * Steve Simmons (scs@lokkur.dexter.mi.us), Dec 19, 1989. Placed - * in the public domain by the author. This file rationalizes - * the stock NNTP release of inews with the definitions for NN. - * The rationalization was done as of NN version 6.3.10 and NNTP - * version 1.5.7. - * - * You must edit this file to reflect your local configuration - * and environment. - * - * Follow the instructions given in the comments. See the file - * README for more comments. - * - * $RCSfile: conf.h,v $ $Revision: 1.2 $ - * - * $Author: tom $ $Date: 1997/07/28 00:39:05 $ - * - * $State: Exp $ $Locker: $ - * - * $Log: conf.h,v $ - * Revision 1.2 1997/07/28 00:39:05 tom - * 2.7.1ac-0.43 - * - * Revision 1.1 1989/12/20 17:43:03 news - * v2_6 - * - * Revision 1.1 89/12/20 17:43:03 news - * Initial revision - * - * May 1st, 1990, Kim Storm - * Modifications to get hostname for free (see README.NN) - */ - -#ifndef NNINEWSCONF_H -#define NNINEWSCONF_H - -/* #include "config.h" */ -/* - * added by Montulli@ukanaix.cc.ukans.edu - * to replace the need for config.h - */ - -#include <stdio.h> -#include <ctype.h> - - -/* - * Define NNTP_SERVER to the name of a file containing the name of the - * nntp server. - * - * It is vital that both the nnmaster and all nn users on a machine - * uses the same nntp server, because the nn database is synchronized - * with a specific news active file. - * - * If the file name does not start with a slash, it is relative to - * LIB_DIRECTORY defined below. - * NOTE: If you plan to use the included inews, it MUST be a full pathname - */ - -#define NNTP_SERVER "/usr/local/etc/nntpserver" -/* #define NNTP_SERVER "/usr/lib/nntp_server" */ - - -#ifndef NNTP -/* WHY DO YOU WANT TO MAKE MINI-INEWS WHEN YOU DONT USE NNTP */ -#endif - -/* - * Define your local domain name. You *must* define something, either - * here, in config.h, or elsewhere according to your local standards. - * See comment below on HIDDENNET. - * - * You are not strictly *required* to have a domain name; nonetheless - * it's a good idea. If you are on the Internet or otherwise have a - * valid domain name, use it (except see HIDDENNET below). If you're - * a uucp-only site, use ".uucp" for now and go get a real name. - * - * Note that if you imbed your domain name in the hostname and you don't - * use HIDDENNET, you may get a period on the end of your fully qualified - * domian name (FQDN) in postings. In that case, use HIDDENNET and - * define DOMAIN to be your FQDN. - */ - -#define DOMAIN "cc.ukans.edu" - -/* - * If you define this, the hostname will not appear in the posting - * data except on the path. Items will be from user@DOMAIN (with - * DOMAIN as defined above). If you don't want this, comment it out. - */ - -/* #define HIDDENNET */ - -/* - * There are a number of ways that inews will try to figure out the - * host name. When used with nn, the definitions in ../config.h - * will specify this, so you don't have to do anything special here. - */ - -/* - * If you don't have bcopy, the following define will make one... - */ - -/* #define USG /* */ - -/* - * You shouldn't need to touch anything below this line. - */ - -/* - * This is the code needed to get the proper hostname. - * - * nn provides a gethostname function for generic use. - * we fake uname() for inews.c using this: - */ - -#define uname(str) gethostname(str, sizeof(str)) - -/* - * Stock nntp inews and nn use some different #define names for the - * same general functions. This synchronises them. - */ - -#define SERVER_FILE NNTP_SERVER - -/* - * Reverse engineering (nn got this the other way around).... - */ - -#ifdef HAVE_STRCHR -#define rindex strrchr -#define index strchr -#endif - -/* - * Sanity checks (You know. Checks you get from Sanity Claus) - */ - -#ifdef HIDDENNET -#ifndef DOMAIN -YOU_BLEW_IT READ_THE_INSTRUCTIONS_AGAIN -#endif -#endif - -#endif /* of ifdef NNINEWSCONF_H */ diff --git a/utils/inews/config.h b/utils/inews/config.h deleted file mode 100644 index eacc4361..00000000 --- a/utils/inews/config.h +++ /dev/null @@ -1,392 +0,0 @@ - -/**************************** NN CONFIGURATION *************************** - * - * Configuration file for nn. - * - * You must edit this file to reflect your local configuration - * and environment. - * - * Before editing this file, read the licence terms in the README - * file and the installation guidelines in the INSTALLATION file. - * - * (c) Copyright 1990, Kim F. Storm. All rights reserved. - */ - -#define RELEASE "6.4" - -#include <stdio.h> -#include <ctype.h> - - -/*********************** NETWORK DEPENDENT DEFINITIONS ********************** - * - * Define NETWORK_DATABASE if you share the database through NFS on - * a network with different, non-compatible machines, e.g. SUNs and - * VAXen, or SUN-3 and SUN-4, or if you are using different compilers - * on the same architecture. - * - * In a homogenous network, you can leave it undefined for higher - * performance (no data conversion is needed). - */ - -/* #define NETWORK_DATABASE /* */ - - -/********************************** NNTP ********************************* - * - * Define NNTP to enable nntp support. If you are not using NNTP, - * just leave the following NNTP_* definitions as they are - they - * will be ignored anyway. - * - * With NNTP, the nnmaster still maintains a local database of - * all article headers for fast access (and because NNTP does not - * support nn - yet), while the articles are fetched from the - * nntp server when they are read or saved. - * - * You may still share this database through NFS locally (see the - * description of NETWORK_DATABASE above) if you don't want to - * have separate nn databases on all your local systems. - * - * Consult the file NNTP for further information on the use of NNTP. - */ - -/* #define NNTP /* */ - -/* - * Define NNTP_SERVER to the name of a file containing the name of the - * nntp server. - * - * It is vital that both the nnmaster and all nn users on a machine - * uses the same nntp server, because the nn database is synchronized - * with a specific news active file. - * - * If the file name does not start with a slash, it is relative to - * LIB_DIRECTORY defined below. - * NOTE: If you plan to use the included inews, it MUST be a full pathname - */ - -#define NNTP_SERVER "/usr/lib/nntp_server" - -/* - * Define NNTP_POST if you want nn to reject attempts to post via - * NNTP to a server, that disallows postings. - * - * You should define this, if you use the NNTP based mini-inews for - * postings from NNTP clients. If you use another mechanism, that - * does not involve NNTP, you should leave it undefined. - */ - -#define NNTP_POST /* */ - -/* - * NNTP's mini-inews seems to require that messages contain a complete - * header with Message-ID, Path, and Date fields which the normal inews - * generates itself. If your mini-inews requires these headers to - * be present, define NNTP_MINI_INEWS_HEADER below. - */ - -#define NNTP_MINI_INEWS_HEADER /* uses "broken" mini-inews */ - -/* - * Define NNTP_PATH_HOSTNAME to force a specific hostname into the - * Path: header generated when NNTP_MINI_INEWS_HEADER is defined. - * This is useful for multi-machine sites with one mail/news gateway. - * - * If the string starts with a '/' it is taken as the name of a file - * from which the outgoing hostname should be read (at runtime). - */ - -/* #define NNTP_PATH_HOSTNAME "puthostnamehere" /* */ - - -/***************** OPERATING SYSTEM DEPENDENT DEFINITIONS ******************* - * - * Include the appropriate s- file for your system below. - * - * If a file does not exist for your system, you can use - * conf/s-template.h as a starting point for writing you own. - */ - -#include "s-sys5.h" - -/* - * Define DEFAULT_PAGER as the initial value of the 'pager' variable. - * nnadmin pipes shell command output though this command. - */ - -#define DEFAULT_PAGER "pg -n -s" /* system V */ -/* #define DEFAULT_PAGER "more" /* bsd */ - -/* - * DEFAULT_PRINTER is the initial value of the 'printer' variable. - * nn's :print command pipes text into this command. - */ - -#define DEFAULT_PRINTER "lp -s" /* System V */ -/* #define DEFAULT_PRINTER "lpr -p -JNEWS" /* bsd */ - -/* - * Define RESIZING to make nn understand dynamic window-resizing. - * (It uses the TIOCGWINSZ ioctl found on most 4.3BSD systems) - */ - -/* #define RESIZING /* */ - - -/********************** MACHINE DEPENDENT DEFINITIONS ********************** - * - * Include the appropriate m- file for your system below. - * - * If a file does not exist for your system, you can use - * conf/m-template.h as a starting point for writing you own. - */ - -#include "m-m680x0.h" - - -/***************************** OWNERSHIP *************************** - * - * Specify owner and group for installed files and programs. - * - * The nnmaster will run suid/sgid to this owner and group. - * - * The only requirements are that the ownership allows the - * nnmaster to READ the news related files and directories, and - * the ordinary users to read the database and execute the nn* - * programs. - * - * Common choices are: (news, news) and (your uid, your gid) - */ - -#define OWNER "news" -#define GROUP "news" - - -/**************************** LOCALIZATION **************************** - * - * Specify where programs and files are installed. - * - * BIN_DIRECTORY - the location of the user programs (mandatory) - * - * LIB_DIRECTORY - the location of auxiliary programs and files. - * (mandatory UNLESS ALL of the following are defined). - * - * MASTER_DIRECTORY - the location of the master program (on server) - * (= LIB_DIRECTORY if undefined) - * - * CLIENT_DIRECTORY - the location of auxiliary programs (on clients) - * (= LIB_DIRECTORY if undefined) - * - * HELP_DIRECTORY - the location of help files, online manual, etc. - * (= CLIENT_DIRECTORY/help if undefined) - * - * CACHE_DIRECTORY - if NNTP is used, nn uses this central directory - * to store working copies of articles on the local - * system. If not defined, it stores the articles - * in each user's ~/.nn directory. - * - * TMP_DIRECTORY - temporary file storage. Overriden by $TMPDIR. - * (= /usr/tmp if undefined). - * - * LOG_FILE - the location of nn's log file. - * (= LIB_DIRECTORY/Log if undefined). - */ - -#define BIN_DIRECTORY "/usr/local/bin" -#define LIB_DIRECTORY "/usr/local/lib/nn" - - -/**************************** DATABASE LOCATION ************************** - * - * Specify where the nn database should be installed. - * - * If none of the following symbols are defined, the database will - * be contained in the NEWS_DIRECTORY in a separate .nn directory for - * master files and in files named .nnx and .nnd in each group's - * spool directory. To use this scheme, the OWNER specified above - * must have write permission on the news spool directories. - * - * If you access news via NNTP, you will probably always have to - * give the database directory explicitly through DB_DIRECTORY - * (and DB_DATA_DIRECTORY), since the normal news spool directories - * are probably not available on the local system. - * The exception may be if nnmaster runs directly on the nntp server. - * - * To change the default behaviour, you can define the following - * symbols: - * - * DB_DIRECTORY - the directory containing the master files. - * - * DB_DATA_DIRECTORY - the directory containing the per-group files - * (default is DB_DIRECTORY/DATA if undefined). - * - * DB_LONG_NAMES - use group's name rather than number when - * building file names in DB_DATA_DIRECTORY. - * (The file system must support long file names!!) - */ - -#define DB_DIRECTORY "/usr/spool/nn" - - -/*************************** NEWS TRANSPORT ************************** - * - * Specify the location of your news programs and files - * You only need to specify these if you are not - * satisfied with the default settings. - * - * NEWS_DIRECTORY - The news spool directory. - * Default: /usr/spool/news - * - * NEWS_LIB_DIRECTORY - The news lib directory. - * Default: /usr/lib/news - * - * INEWS_PATH - The location of the inews program. - * Default: NEWS_LIB_DIR/inews - * - * RMGROUP_PATH - The location of the rmgroup program. - * Default: NEWS_LIB_DIR/{rm,del}group - */ - -#define NEWS_DIRECTORY "/usr/spool/news" /* */ -#define NEWS_LIB_DIRECTORY "/usr/lib/news" /* */ - -/* #define INEWS_PATH "/usr/lib/news/inews" /* */ - - -/*************************** MAIL INTERFACE ************************* - * - * Specify a mailer that accepts a letter WITH a header IN THE TEXT. - * - * A program named 'recmail' program is normally delivered with - * the Bnews system, or you can use sendmail -t if you have it. - * - * The contrib/ directory contains two programs which you might - * be able to use with a little tweaking. - */ - -#define REC_MAIL "/usr/lib/news/recmail" /* non-sendmail */ -/* #define REC_MAIL "/usr/lib/sendmail -t" /* sendmail */ - - -/* - * Define HAVE_ROUTING if your mailer understands domain based - * adresses (...@...) and performs the necessary rerouting (e.g. - * Sendmail or Smail). - * - * Otherwise, nn will provide a simple routing facility using - * routing information specified in the file LIB_DIRECTORY/routes. - */ - -#define HAVE_ROUTING /* */ - -/* - * If HAVE_ROUTING is NOT defined, nn needs to know the name of - * your host. To obtain the host name it will use either of the - * 'uname' or 'gethostname' system calls as specified in the s- - * file included above. - * - * If neither 'uname' nor 'gethostname' is available, you must - * define HOSTNAME to be the name of your host. Otherwise, leave - * it undefined (it will not be used anyway). - */ - -/* #define HOSTNAME "myhost" /* Not used if HAVE_ROUTING */ - -/* - * Define APPEND_SIGNATURE if you want nn to ask users to append - * ~/.signature to mail messages (reply/forward/mail). - * - * If the mailer defined in REC_MAIL automatically includes .signature - * you should not define this (it will fool people to include it twice). - * - * I think 'recmail' includes .signature, but 'sendmail -t' doesn't. - */ - -/* #define APPEND_SIGNATURE /* */ - -/* - * BUG_REPORT_ADDRESS is the initial value of the bug-report-address - * variable which is used by the :bug command to report bugs in - * the nn software. - */ - -#define BUG_REPORT_ADDRESS "nn-bugs@dkuug.dk" - - -/*************************** DOCUMENTATION *************************** - * - * Specify directories for the user and system manuals - * - * Adapt this to your local standards; the manuals will be named - * $(MAN_DIR)/program.$(MAN_SECTION) - * - * USER_MAN - nn, nntidy, nngrep, etc. - * SYS_MAN - nnadmin - * DAEMON_MAN - nnmaster - */ - -#define USER_MAN_DIR "/usr/man/man1" -#define USER_MAN_SECTION "1" - -#define SYS_MAN_DIR "/usr/man/man1" -#define SYS_MAN_SECTION "1m" - -#define DAEMON_MAN_DIR "/usr/man/man8" -#define DAEMON_MAN_SECTION "8" - - -/************************** LOCAL POLICY ***************************** - * - * Define STATISTICS if you want to keep a record of how much - * time the users spend on news reading. - * - * Sessions shorter than the specified number of minutes are not - * recorded (don't clutter up the log file). - * - * Usage statistics is entered into the $LOG_FILE with code U - */ - -/* #define STATISTICS 5 /* minutes */ - -/* - * Define ACCOUNTING if you want to keep accumulated accounting - * based on the statistics in a separate 'acct' file. In this - * case, the accounting figures will be secret, and not be - * written to the Log file. And the users will not be able to - * "decrease" their own account. - * - * See account.c for optional cost calculation parameters. - */ - -/* #define ACCOUNTING /* */ - -/* - * Define AUTHORIZE if you want to restrict the use of nn to - * certain users or certain periods of the day. Define both - * this and ACCOUNTING if you want to impose a usage quota - * - * See account.c for implementing various access policies. - */ - -/* #define AUTHORIZE /* */ - -/* - * Default folder directory - */ - -#define FOLDER_DIRECTORY "~/News" - -/* - * Max length of authors name (in "edited" format). - * Also size of "Name" field on the article menus. - * You may want to increase this if your terminals are wider than - * 80 columns. - */ - -#define NAME_LENGTH 16 - - -/************************ CONFIGURATION COMPLETED ************************/ - -#include "global.h" - diff --git a/utils/inews/config.h-dist b/utils/inews/config.h-dist deleted file mode 100644 index eacc4361..00000000 --- a/utils/inews/config.h-dist +++ /dev/null @@ -1,392 +0,0 @@ - -/**************************** NN CONFIGURATION *************************** - * - * Configuration file for nn. - * - * You must edit this file to reflect your local configuration - * and environment. - * - * Before editing this file, read the licence terms in the README - * file and the installation guidelines in the INSTALLATION file. - * - * (c) Copyright 1990, Kim F. Storm. All rights reserved. - */ - -#define RELEASE "6.4" - -#include <stdio.h> -#include <ctype.h> - - -/*********************** NETWORK DEPENDENT DEFINITIONS ********************** - * - * Define NETWORK_DATABASE if you share the database through NFS on - * a network with different, non-compatible machines, e.g. SUNs and - * VAXen, or SUN-3 and SUN-4, or if you are using different compilers - * on the same architecture. - * - * In a homogenous network, you can leave it undefined for higher - * performance (no data conversion is needed). - */ - -/* #define NETWORK_DATABASE /* */ - - -/********************************** NNTP ********************************* - * - * Define NNTP to enable nntp support. If you are not using NNTP, - * just leave the following NNTP_* definitions as they are - they - * will be ignored anyway. - * - * With NNTP, the nnmaster still maintains a local database of - * all article headers for fast access (and because NNTP does not - * support nn - yet), while the articles are fetched from the - * nntp server when they are read or saved. - * - * You may still share this database through NFS locally (see the - * description of NETWORK_DATABASE above) if you don't want to - * have separate nn databases on all your local systems. - * - * Consult the file NNTP for further information on the use of NNTP. - */ - -/* #define NNTP /* */ - -/* - * Define NNTP_SERVER to the name of a file containing the name of the - * nntp server. - * - * It is vital that both the nnmaster and all nn users on a machine - * uses the same nntp server, because the nn database is synchronized - * with a specific news active file. - * - * If the file name does not start with a slash, it is relative to - * LIB_DIRECTORY defined below. - * NOTE: If you plan to use the included inews, it MUST be a full pathname - */ - -#define NNTP_SERVER "/usr/lib/nntp_server" - -/* - * Define NNTP_POST if you want nn to reject attempts to post via - * NNTP to a server, that disallows postings. - * - * You should define this, if you use the NNTP based mini-inews for - * postings from NNTP clients. If you use another mechanism, that - * does not involve NNTP, you should leave it undefined. - */ - -#define NNTP_POST /* */ - -/* - * NNTP's mini-inews seems to require that messages contain a complete - * header with Message-ID, Path, and Date fields which the normal inews - * generates itself. If your mini-inews requires these headers to - * be present, define NNTP_MINI_INEWS_HEADER below. - */ - -#define NNTP_MINI_INEWS_HEADER /* uses "broken" mini-inews */ - -/* - * Define NNTP_PATH_HOSTNAME to force a specific hostname into the - * Path: header generated when NNTP_MINI_INEWS_HEADER is defined. - * This is useful for multi-machine sites with one mail/news gateway. - * - * If the string starts with a '/' it is taken as the name of a file - * from which the outgoing hostname should be read (at runtime). - */ - -/* #define NNTP_PATH_HOSTNAME "puthostnamehere" /* */ - - -/***************** OPERATING SYSTEM DEPENDENT DEFINITIONS ******************* - * - * Include the appropriate s- file for your system below. - * - * If a file does not exist for your system, you can use - * conf/s-template.h as a starting point for writing you own. - */ - -#include "s-sys5.h" - -/* - * Define DEFAULT_PAGER as the initial value of the 'pager' variable. - * nnadmin pipes shell command output though this command. - */ - -#define DEFAULT_PAGER "pg -n -s" /* system V */ -/* #define DEFAULT_PAGER "more" /* bsd */ - -/* - * DEFAULT_PRINTER is the initial value of the 'printer' variable. - * nn's :print command pipes text into this command. - */ - -#define DEFAULT_PRINTER "lp -s" /* System V */ -/* #define DEFAULT_PRINTER "lpr -p -JNEWS" /* bsd */ - -/* - * Define RESIZING to make nn understand dynamic window-resizing. - * (It uses the TIOCGWINSZ ioctl found on most 4.3BSD systems) - */ - -/* #define RESIZING /* */ - - -/********************** MACHINE DEPENDENT DEFINITIONS ********************** - * - * Include the appropriate m- file for your system below. - * - * If a file does not exist for your system, you can use - * conf/m-template.h as a starting point for writing you own. - */ - -#include "m-m680x0.h" - - -/***************************** OWNERSHIP *************************** - * - * Specify owner and group for installed files and programs. - * - * The nnmaster will run suid/sgid to this owner and group. - * - * The only requirements are that the ownership allows the - * nnmaster to READ the news related files and directories, and - * the ordinary users to read the database and execute the nn* - * programs. - * - * Common choices are: (news, news) and (your uid, your gid) - */ - -#define OWNER "news" -#define GROUP "news" - - -/**************************** LOCALIZATION **************************** - * - * Specify where programs and files are installed. - * - * BIN_DIRECTORY - the location of the user programs (mandatory) - * - * LIB_DIRECTORY - the location of auxiliary programs and files. - * (mandatory UNLESS ALL of the following are defined). - * - * MASTER_DIRECTORY - the location of the master program (on server) - * (= LIB_DIRECTORY if undefined) - * - * CLIENT_DIRECTORY - the location of auxiliary programs (on clients) - * (= LIB_DIRECTORY if undefined) - * - * HELP_DIRECTORY - the location of help files, online manual, etc. - * (= CLIENT_DIRECTORY/help if undefined) - * - * CACHE_DIRECTORY - if NNTP is used, nn uses this central directory - * to store working copies of articles on the local - * system. If not defined, it stores the articles - * in each user's ~/.nn directory. - * - * TMP_DIRECTORY - temporary file storage. Overriden by $TMPDIR. - * (= /usr/tmp if undefined). - * - * LOG_FILE - the location of nn's log file. - * (= LIB_DIRECTORY/Log if undefined). - */ - -#define BIN_DIRECTORY "/usr/local/bin" -#define LIB_DIRECTORY "/usr/local/lib/nn" - - -/**************************** DATABASE LOCATION ************************** - * - * Specify where the nn database should be installed. - * - * If none of the following symbols are defined, the database will - * be contained in the NEWS_DIRECTORY in a separate .nn directory for - * master files and in files named .nnx and .nnd in each group's - * spool directory. To use this scheme, the OWNER specified above - * must have write permission on the news spool directories. - * - * If you access news via NNTP, you will probably always have to - * give the database directory explicitly through DB_DIRECTORY - * (and DB_DATA_DIRECTORY), since the normal news spool directories - * are probably not available on the local system. - * The exception may be if nnmaster runs directly on the nntp server. - * - * To change the default behaviour, you can define the following - * symbols: - * - * DB_DIRECTORY - the directory containing the master files. - * - * DB_DATA_DIRECTORY - the directory containing the per-group files - * (default is DB_DIRECTORY/DATA if undefined). - * - * DB_LONG_NAMES - use group's name rather than number when - * building file names in DB_DATA_DIRECTORY. - * (The file system must support long file names!!) - */ - -#define DB_DIRECTORY "/usr/spool/nn" - - -/*************************** NEWS TRANSPORT ************************** - * - * Specify the location of your news programs and files - * You only need to specify these if you are not - * satisfied with the default settings. - * - * NEWS_DIRECTORY - The news spool directory. - * Default: /usr/spool/news - * - * NEWS_LIB_DIRECTORY - The news lib directory. - * Default: /usr/lib/news - * - * INEWS_PATH - The location of the inews program. - * Default: NEWS_LIB_DIR/inews - * - * RMGROUP_PATH - The location of the rmgroup program. - * Default: NEWS_LIB_DIR/{rm,del}group - */ - -#define NEWS_DIRECTORY "/usr/spool/news" /* */ -#define NEWS_LIB_DIRECTORY "/usr/lib/news" /* */ - -/* #define INEWS_PATH "/usr/lib/news/inews" /* */ - - -/*************************** MAIL INTERFACE ************************* - * - * Specify a mailer that accepts a letter WITH a header IN THE TEXT. - * - * A program named 'recmail' program is normally delivered with - * the Bnews system, or you can use sendmail -t if you have it. - * - * The contrib/ directory contains two programs which you might - * be able to use with a little tweaking. - */ - -#define REC_MAIL "/usr/lib/news/recmail" /* non-sendmail */ -/* #define REC_MAIL "/usr/lib/sendmail -t" /* sendmail */ - - -/* - * Define HAVE_ROUTING if your mailer understands domain based - * adresses (...@...) and performs the necessary rerouting (e.g. - * Sendmail or Smail). - * - * Otherwise, nn will provide a simple routing facility using - * routing information specified in the file LIB_DIRECTORY/routes. - */ - -#define HAVE_ROUTING /* */ - -/* - * If HAVE_ROUTING is NOT defined, nn needs to know the name of - * your host. To obtain the host name it will use either of the - * 'uname' or 'gethostname' system calls as specified in the s- - * file included above. - * - * If neither 'uname' nor 'gethostname' is available, you must - * define HOSTNAME to be the name of your host. Otherwise, leave - * it undefined (it will not be used anyway). - */ - -/* #define HOSTNAME "myhost" /* Not used if HAVE_ROUTING */ - -/* - * Define APPEND_SIGNATURE if you want nn to ask users to append - * ~/.signature to mail messages (reply/forward/mail). - * - * If the mailer defined in REC_MAIL automatically includes .signature - * you should not define this (it will fool people to include it twice). - * - * I think 'recmail' includes .signature, but 'sendmail -t' doesn't. - */ - -/* #define APPEND_SIGNATURE /* */ - -/* - * BUG_REPORT_ADDRESS is the initial value of the bug-report-address - * variable which is used by the :bug command to report bugs in - * the nn software. - */ - -#define BUG_REPORT_ADDRESS "nn-bugs@dkuug.dk" - - -/*************************** DOCUMENTATION *************************** - * - * Specify directories for the user and system manuals - * - * Adapt this to your local standards; the manuals will be named - * $(MAN_DIR)/program.$(MAN_SECTION) - * - * USER_MAN - nn, nntidy, nngrep, etc. - * SYS_MAN - nnadmin - * DAEMON_MAN - nnmaster - */ - -#define USER_MAN_DIR "/usr/man/man1" -#define USER_MAN_SECTION "1" - -#define SYS_MAN_DIR "/usr/man/man1" -#define SYS_MAN_SECTION "1m" - -#define DAEMON_MAN_DIR "/usr/man/man8" -#define DAEMON_MAN_SECTION "8" - - -/************************** LOCAL POLICY ***************************** - * - * Define STATISTICS if you want to keep a record of how much - * time the users spend on news reading. - * - * Sessions shorter than the specified number of minutes are not - * recorded (don't clutter up the log file). - * - * Usage statistics is entered into the $LOG_FILE with code U - */ - -/* #define STATISTICS 5 /* minutes */ - -/* - * Define ACCOUNTING if you want to keep accumulated accounting - * based on the statistics in a separate 'acct' file. In this - * case, the accounting figures will be secret, and not be - * written to the Log file. And the users will not be able to - * "decrease" their own account. - * - * See account.c for optional cost calculation parameters. - */ - -/* #define ACCOUNTING /* */ - -/* - * Define AUTHORIZE if you want to restrict the use of nn to - * certain users or certain periods of the day. Define both - * this and ACCOUNTING if you want to impose a usage quota - * - * See account.c for implementing various access policies. - */ - -/* #define AUTHORIZE /* */ - -/* - * Default folder directory - */ - -#define FOLDER_DIRECTORY "~/News" - -/* - * Max length of authors name (in "edited" format). - * Also size of "Name" field on the article menus. - * You may want to increase this if your terminals are wider than - * 80 columns. - */ - -#define NAME_LENGTH 16 - - -/************************ CONFIGURATION COMPLETED ************************/ - -#include "global.h" - diff --git a/utils/inews/inews.c b/utils/inews/inews.c deleted file mode 100644 index 134dc460..00000000 --- a/utils/inews/inews.c +++ /dev/null @@ -1,392 +0,0 @@ -#ifndef lint -static char *sccsid = "@(#)inews.c 1.16 (Berkeley) 8/27/89"; -#endif - -/* - * Itty-bitty inews for talking to remote server. - * Simply accept input on stdin (or via a named file) and dump this - * to the server; add a From: and Path: line if missing in the original. - * Print meaningful errors from the server. - * Limit .signature files to MAX_SIGNATURE lines. - * No processing of command line options. - * - * Original by Steven Grady <grady@ucbvax.Berkeley.EDU>, with thanks from - * Phil Lapsley <phil@ucbvax.berkeley.edu> - * Send bug reports to Stan Barber <sob@bcm.tmc.edu> - */ - -#include <stdio.h> -#include <pwd.h> -#include <ctype.h> -#include "conf.h" -#include "nntp.h" -#include "clientlib.h" -#include <string.h> - -#define MAX_SIGNATURE 4 - -extern FILE *ser_wr_fp; - -char host_name[256]; - -main(argc, argv) -int argc; -char *argv[]; -{ - char line[NNTP_STRLEN], s[NNTP_STRLEN]; - int seen_fromline, in_header, seen_header; - int response; - char *server; - char *getserverbyfile(); - register char *cp; - - ++argv; - while (argc > 1) - if (*argv[0] == '-') { - ++argv; - --argc; - } else - break; - - if (argc > 1) { - if (freopen(*argv, "r", stdin) == NULL) { - perror(*argv); - exit(1); - } - } - - uname(host_name); - - server = getserverbyfile(SERVER_FILE); - if (server == NULL) { - fprintf(stderr, - "Can't get the name of the news server from %s.\n", - SERVER_FILE); - fprintf(stderr, - "Either fix this file, or put NNTPSERVER in your enviroment.\n"); - exit(1); - } - - response = server_init(server); - if (response < 0) { - printf("Couldn't connect to %s news server, try again later.\n", - server); - exit(1); - } - - if (handle_server_response(response, server) < 0 - || response == OK_NOPOST) { - close_server(); - exit(1); - } - - put_server("POST"); - (void) get_server(line, sizeof(line)); - if (*line != CHAR_CONT) { - if (atoi(line) == ERR_NOPOST) { - close_server(); - fprintf(stderr, - "Sorry, you can't post from this machine.\n"); - exit(1); - } else { - close_server(); - fprintf(stderr, "Remote error: %s\n", line); - exit(1); - } - } - - in_header = 1; - seen_header = 0; - seen_fromline = 0; - - while (fgets(s, sizeof(s), stdin) != NULL) { - if ((cp = strchr(s, '\n')) != NULL) - *cp = '\0'; - if (s[0] == '.') /* Single . is eof, so put in extra one */ - (void) fputc('.', ser_wr_fp); - if (in_header && strneql(s, "From:", sizeof("From:")-1)) { - seen_header = 1; - seen_fromline = 1; - } - if (in_header && s[0] == '\0') { - if (seen_header) { - in_header = 0; - if (!seen_fromline) - gen_frompath(); - } else { - continue; - } - } else if (in_header) { - if (valid_header(s)) - seen_header = 1; - else - continue; - } - fprintf(ser_wr_fp, "%s\r\n", s); - } - - append_signature(); - - fprintf(ser_wr_fp, ".\r\n"); - (void) fflush(ser_wr_fp); - (void) get_server(line, sizeof(line)); - if (*line != CHAR_OK) { - if (atoi(line) == ERR_POSTFAIL) { - close_server(); - printf("Article not accepted by server; not posted.\n"); - for (cp = line + 4; *cp && *cp != '\r'; cp++) - if (*cp == '\\') - putchar('\n'); - else - putchar(*cp); - exit(1); - } else { - close_server(); - fprintf(stderr, "Remote error: %s\n", line); - exit(1); - } - } - - /* - * Close server sends the server a - * "quit" command for us, which is why we don't send it. - */ - - close_server(); - - exit(0); - return(0); -} - -/* - * append_signature -- append the person's .signature file if - * they have one. Limit .signature to MAX_SIGNATURE lines. - * The rn-style DOTDIR environmental variable is used if present. - */ - -append_signature() -{ - char line[256], sigfile[256]; - char *cp; - struct passwd *passwd; - FILE *fp; - char *getenv(); - int count = 0; - char *dotdir; - - passwd = getpwuid(getuid()); - if (passwd == NULL) - return; -#ifdef DO_DOTDIR - if ((dotdir = getenv("DOTDIR")) == NULL) -#endif - { - dotdir = passwd->pw_dir; - } - - if (dotdir[0] == '~') { - (void) strcpy(sigfile, passwd->pw_dir); - (void) strcat(sigfile, &dotdir[1]); - } else { - (void) strcpy(sigfile, dotdir); - } - (void) strcat(sigfile, "/"); - (void) strcat(sigfile, ".signature"); - -#ifdef DEBUG - fprintf(stderr,"sigfile = '%s'\n", sigfile); -#endif - - fp = fopen(sigfile, "r"); - if (fp == NULL) - return; - -#ifdef DEBUG - fprintf(stderr,"sigfile opened OK\n"); -#endif - - fprintf(ser_wr_fp, "--\r\n"); - while (fgets(line, sizeof (line), fp)) { - count++; - if (count > MAX_SIGNATURE) { - fprintf(stderr, - "Warning: .signature files should be no longer than %d lines.\n", - MAX_SIGNATURE); - fprintf(stderr, - "(Only %d lines of your .signature were posted.)\n", - MAX_SIGNATURE); - break; - } - if (cp = strchr(line, '\n')) - *cp = '\0'; - fprintf(ser_wr_fp, "%s\r\n", line); - } - (void) fclose(fp); -#ifdef DEBUG - printf(".signature appended (from %s)\n", sigfile); -#endif -} - - -/* - * gen_frompath -- generate From: and Path: lines, in the form - * - * From: user@host.domain (full_name) - * Path: host!user - * - * This routine should only be called if the message doesn't have - * a From: line in it. - */ - -gen_frompath() -{ - char *full_name; - char *cp; - struct passwd *passwd; - char *getenv(); - - passwd = getpwuid(getuid()); - - full_name = getenv("NAME"); - if (full_name == NULL) { - full_name = passwd->pw_gecos; - if ((cp = strchr(full_name, ','))) - *cp = '\0'; - } - -#ifdef DOMAIN -#ifdef HIDDENNET - fprintf(ser_wr_fp, "From: %s@%s (", - passwd->pw_name, - DOMAIN); -#else /* HIDDENNET */ - - /* A heuristic to see if we should tack on a domain */ - - cp = strchr(host_name, '.'); - if (cp) - fprintf(ser_wr_fp, "From: %s@%s (", - passwd->pw_name, - host_name); - else - fprintf(ser_wr_fp, "From: %s@%s.%s (", - passwd->pw_name, - host_name, - DOMAIN); -#endif /* HIDDENNET */ -#else - fprintf(ser_wr_fp, "From: %s@%s (", - passwd->pw_name, - host_name); -#endif - - for (cp = full_name; *cp != '\0'; ++cp) - if (*cp != '&') - putc(*cp, ser_wr_fp); - else { /* Stupid & hack. God damn it. */ - putc(toupper(passwd->pw_name[0]), ser_wr_fp); - fprintf(ser_wr_fp, passwd->pw_name+1); - } - - fprintf(ser_wr_fp, ")\r\n"); - -#ifdef HIDDENNET - /* Only the login name - nntp server will add uucp name */ - fprintf(ser_wr_fp, "Path: %s\r\n", passwd->pw_name); -#else /* HIDDENNET */ - fprintf(ser_wr_fp, "Path: %s!%s\r\n", host_name, passwd->pw_name); -#endif /* HIDDENNET */ -} - - -/* - * strneql -- determine if two strings are equal in the first n - * characters, ignoring case. - * - * Parameters: "a" and "b" are the pointers - * to characters to be compared. - * "n" is the number of characters to compare. - * - * Returns: 1 if the strings are equal, 0 otherwise. - * - * Side effects: None. - */ - -strneql(a, b, n) -register char *a, *b; -int n; -{ - char lower(); - - while (n && lower(*a) == lower(*b)) { - if (*a == '\0') - return (1); - a++; - b++; - n--; - } - if (n) - return (0); - else - return (1); -} - -/* - * lower -- convert a character to lower case, if it's - * upper case. - * - * Parameters: "c" is the character to be - * converted. - * - * Returns: "c" if the character is not - * upper case, otherwise the lower - * case eqivalent of "c". - * - * Side effects: None. - */ - -char lower(c) -register char c; -{ - if (isascii(c) && isupper(c)) - c = c - 'A' + 'a'; - return(c); -} - - -/* - * valid_header -- determine if a line is a valid header line - * - * Parameters: "h" is the header line to be checked. - * - * Returns: 1 if valid, 0 otherwise - * - * Side Effects: none - * - */ - -int valid_header(h) -register char *h; -{ - char *colon, *space; - - /* - * blank or tab in first position implies this is a continuation header - */ - if (h[0] == ' ' || h[0] == '\t') - return (1); - - /* - * just check for initial letter, colon, and space to make - * sure we discard only invalid headers - */ - colon = strchr(h, ':'); - space = strchr(h, ' '); - if (isalpha(h[0]) && colon && space == colon + 1) - return (1); - - /* - * anything else is a bad header -- it should be ignored - */ - return (0); -} diff --git a/utils/inews/nntp.h b/utils/inews/nntp.h deleted file mode 100644 index 4ec2f35b..00000000 --- a/utils/inews/nntp.h +++ /dev/null @@ -1,73 +0,0 @@ -/* - * Response codes for NNTP server - * - * @(#)nntp.h 1.7 (Berkeley) 1/11/88 - * - * First digit: - * - * 1xx Informative message - * 2xx Command ok - * 3xx Command ok so far, continue - * 4xx Command was correct, but couldn't be performed - * for some specified reason. - * 5xx Command unimplemented, incorrect, or a - * program error has occured. - * - * Second digit: - * - * x0x Connection, setup, miscellaneous - * x1x Newsgroup selection - * x2x Article selection - * x3x Distribution - * x4x Posting - */ - -#define CHAR_INF '1' -#define CHAR_OK '2' -#define CHAR_CONT '3' -#define CHAR_ERR '4' -#define CHAR_FATAL '5' - -#define INF_HELP 100 /* Help text on way */ -#define INF_DEBUG 199 /* Debug output */ - -#define OK_CANPOST 200 /* Hello; you can post */ -#define OK_NOPOST 201 /* Hello; you can't post */ -#define OK_SLAVE 202 /* Slave status noted */ -#define OK_GOODBYE 205 /* Closing connection */ -#define OK_GROUP 211 /* Group selected */ -#define OK_GROUPS 215 /* Newsgroups follow */ -#define OK_ARTICLE 220 /* Article (head & body) follows */ -#define OK_HEAD 221 /* Head follows */ -#define OK_BODY 222 /* Body follows */ -#define OK_NOTEXT 223 /* No text sent -- stat, next, last */ -#define OK_NEWNEWS 230 /* New articles by message-id follow */ -#define OK_NEWGROUPS 231 /* New newsgroups follow */ -#define OK_XFERED 235 /* Article transferred successfully */ -#define OK_POSTED 240 /* Article posted successfully */ - -#define CONT_XFER 335 /* Continue to send article */ -#define CONT_POST 340 /* Continue to post article */ - -#define ERR_GOODBYE 400 /* Have to hang up for some reason */ -#define ERR_NOGROUP 411 /* No such newsgroup */ -#define ERR_NCING 412 /* Not currently in newsgroup */ -#define ERR_NOCRNT 420 /* No current article selected */ -#define ERR_NONEXT 421 /* No next article in this group */ -#define ERR_NOPREV 422 /* No previous article in this group */ -#define ERR_NOARTIG 423 /* No such article in this group */ -#define ERR_NOART 430 /* No such article at all */ -#define ERR_GOTIT 435 /* Already got that article, don't send */ -#define ERR_XFERFAIL 436 /* Transfer failed */ -#define ERR_XFERRJCT 437 /* Article rejected, don't resend */ -#define ERR_NOPOST 440 /* Posting not allowed */ -#define ERR_POSTFAIL 441 /* Posting failed */ - -#define ERR_COMMAND 500 /* Command not recognized */ -#define ERR_CMDSYN 501 /* Command syntax error */ -#define ERR_ACCESS 502 /* Access to server denied */ -#define ERR_FAULT 503 /* Program fault, command not performed */ - -/* RFC 977 defines this; don't change it. */ - -#define NNTP_STRLEN 512 diff --git a/utils/inews/version.c b/utils/inews/version.c deleted file mode 100644 index 0b9d4167..00000000 --- a/utils/inews/version.c +++ /dev/null @@ -1,5 +0,0 @@ -/* - * Provide the version number of this release. - */ - -char nntp_version[] = "1.5.8 (11 March 90)"; |