DNEWS Management DNEWS: A fast, efficient, low management NNTP news server. EGLE Magic, P.O Box 27574, Mt Roskill, Auckland, New Zealand, Email emagic@world.std.com DNEWS Management DNEWS 4 DNEWS Installation 4 Main Installation Steps (VAX, see below for UNIX) 4 Main installation steps for UNIX 4 Editing NEWS.CONF 6 Things you MUST change! 6 Editing ACCESS.CONF 6 How news gets in and out of your system 6 FEEDING news INTO your system 6 Feeding using an NNTP IHAVE feed. 6 Feeding using a SUCKING feed (default) 7 FEEDING news OUT OF your system 7 Sending news up line using a POSTING feed (default) 7 Sending news up line using an NNTP-IHAVE sender 7 Setting up a full IHAVE feed instead of a sucking feed. 7 Copying important files from an existing system: 8 Renaming a volume (on unix): 8 Configuration files 8 news.conf 8 access.conf 9 Notes: 10 expire.conf 10 Example: 10 newsfeeds.conf 10 moderators.conf 11 control.conf 11 Example: 12 tellnews commands 12 Testing a server using TELNET 13 Common problems FAQ 13 Can't BIND 13 TELLNEWS fails or locks ups 13 TELLNEWS sais remote node is unknown 14 TELLNEWS sais incorrect password 14 NNTP, Sorry I can't talk to you 14 DNEWS Mailing List 14 Appendix A, What is USENET 15 What is USENET News? 15 News groups 15 How your article will get to the rest of the world 15 What to read first 15 What is an FAQ? 15 Be careful posting 15 How big is it? 15 Appendix B, Time Zone Names 16 Appendix C, NNTP Summary 17 authinfo [user Name]|[pass Password] 17 article [MessageID|Number] 17 body [MessageID|Number] 17 date 17 group newsgroup 17 head [MessageID|Number] 17 help 17 ihave 17 last 17 list [active] 17 list active.times 17 list newsgroups 17 listgroup [newsgroup] (extension) 18 mode reader 18 newgroups yymmdd hhmmss [GMT] [] 18 newnews newsgroups yymmdd hhmmss [GMT] [] 18 next 18 post 18 slave 18 stat [MessageID|Number] 18 xgtitle [group_pattern] (extension) 18 xhdr header [range|MessageID] (extension) 18 xover [range] (extension) 18 xpat header range|MessageID pat [morepat...] (extension) 18 xpath xpath MessageID (extension) 19 DNEWS DNEWS is designed to be a fast, easy to use, low overhead and low maintenance. EGLE Magic, P.O. Box 27574, Mt Roskill, Auckland. Email: emagic@world.std.com DNEWS Installation Always refer to install.txt for the most up to date installation notes and helpful hints etc. Main Installation Steps (VAX, see below for UNIX) 1. FTP ftp.std.com /ftp/vendors/emagic/dnews... 2. @extract Extracts the required files 3. $ edit register_user.com Change uic and disk to match your machine 4. $ @register_user Register user dnews$server on your machine. 5. $ edit dnews_start.com Define the disk(s) where DNEWS is installed 6. $ edit sys$manager:systartup_v5.com Add the startup line (see startup.tmp) 7. $ edit sys$sylogin: Add the symbol (see login.tmp) 8. $ edit dnews_top:news.conf Modify the file DNEWS.CONF to describe your system by defining the following symbols MANAGER, NNTP_FEEDER.... TIMEZONE, DISKSPACE, MYNAME 9. If your news feed stamps the path header with a name other than it's ip name as in `nntp_feeder' then edit newsfeeds.conf and add an exclude command to prevent your news system from `echoing' all messages back to your feeder. 10. $ edit access.conf Grant an ip range access to the system, e.g. *.here.comp.edu:read,post,:::* 161.23.4.*:read,post,:::* 11. $ @dnews_top:dnews_start Start the system 12. $ type dnews.info Type the log file, give it one or two minutes before panicking. 13. $ tellnews status Get a status report 14. Go to your favourite PC news reader software and try it out!!! Main installation steps for UNIX ú FTP ftp.std.com /ftp/vendors/emagic/dnews/dnews_linux.tar.Z ú Extract the files to a temporary directory # uncompress dnews_linux.tar.Z # tar -xvf dnews_linux.tar # cd dnews ú EDIT dnews.conf and carefully define the following symbols Symbol Example Description manager system@here.th Email address of the news manager is.place nntp_fe news.feeder.si The news site where you are going eder te to SUCK a feed from. You need NNTP READER access to this site. myname news.this.plac Your full internet name, if left e out this may be picked up from the system. diskspa 100 Total disk space in megabytes ce confirm *.this.place Send email confirmation to postings from these addresses. (set this to match your local email addresses) df df -k Path and paramters for df command (Display Filesystem) sendmai /usr/lib/sendm Path and parameters for sendmail l ail -t %s ú EDIT your startup script and add the following line, startup scripts are diferent for every version of unix: # emacs /etc/rc.d/rc.local Add a line: /usr/local/dnews/dnews_start.sh ú If your news feed stamps the path header with a name other than it's ip name as in `nntp_feeder' then edit newsfeeds.conf and add an exclude command to prevent your news system from `echoing' all messages back to your feeder. ú EDIT access.conf and grant ip access to ip numbers or names in your domain, names will only work if your reverse name translation is setup correctly. *.this.site.edu:read,post:::* 161.24.3.*:read,post:::* ú If you have changed any of the default directories, then you must edit all the shell scripts, (*.sh) to reflect the change. ú Run the installation script: # ./install.sh ú Start the news server # ./dnews_start.sh ú The system will now try and fetch a list of newsgroups from your feeder site, this may take 10 minutes the first time and the system will not respond to the tellnews command while this is happening. Use `ps -alx | grep news' to check it is running, and look at the log files: # more /usr/local/dnews/dnews.error # more /usr/local/dnews/nohup.out # ps -ef | grep news ú When the system has had a chance to get going, try it out using the tellnews command # tellnews status ú Go find a PC and try out the system! Editing NEWS.CONF The file NEWS.CONF is used to tell DNEWS about your system, you MUST modify the following variables in this file before starting the system. Things you MUST change! Symbol Example Description manager system@here.th Email address of the news manager is.place timezon NZST Timezone hh:mm or timezone name e Appendix B diskspa 100 Total disk space in megabytes ce confirm *.this.place Send email confirmation to postings from these addresses. (set this to match your local email addresses) mail smtp Name of the foreign email system on VMS, typically in% or smtp% (don't include the %) nntp_fe news.feeder.si The news site where you are going eder te to SUCK a feed from. You need NNTP READER access to this site. myname news.this.plac Your full internet name, if left e out this may be picked up from the system. Editing ACCESS.CONF Add a line granting read and posting access to all your users, you can do this by ip number of by ip name if you have reverse name translation properly setup. *.here.edu:read,post:::* 161.23.4.*:read,post:::* How news gets in and out of your system FEEDING news INTO your system With DNEWS you have two choices, you can push the news into your system using an NNTP IHAVE sending program or a SUCKING feed. This is run from the server which provides you with a feed. This is the standard way of sending news but it has two disadvantages: 1. An NNTP IHAVE feed comes as a random selection of items from various news groups, this prevents any optimization when creating indexes and storing items. 2. An NNTP IHAVE feed must be setup from the other end. This prevents auto configuration of what is fed, it also makes configuration difficult as you may have limited or virtually no access to the feeder site configuration. Feeding using an NNTP IHAVE feed. If you use this method then you must take a full feed, or at least a fixed subset of feeds, you can't use the DNEWS dynamic system. To set this up simply modify the access.conf file to allow the site that is feeding you to have IHAVE access. news.feeder.site:ihave:::* Then the job is done apart from setting the feed up from the other end which is entirely your problem! Feeding using a SUCKING feed (default) This is extremely easy to setup, in the file NEWS.CONF define the variable NNTP_FEEDER to point to a site where you have NEWS READER access. FEEDING news OUT OF your system Sending news up line using a POSTING feed (default) If you are a LEAF site. (A leaf site is where you don't feed news on to anyone else) then you have an easy option, you can pass the job of `posting' an item up stream to your feeder site. Using this system DNEWS essentially pretends to be a NEWS READER which is posting your item directly on your FEEDER site. Any error message will be emailed to you. In the file NEWSFEEDS.CONF define one feed as follows: site $NNTP_FEEDER groups * builtin posting If your feeder site is stamping each news item with a name different from it's IP name that you used in your NEWS.CONF file then you will have to add an exclude line to this feeding definition to stop the feed from trying to send every item that comes in back to the feeder. exclude feeder.name.stamp The special commands `builtin' tells DNEWS to use it's own internal NNTP link to send any articles to this feed and the command `posting' tells DNEWS to POST articles rather than pass them up using the IHAVE mechanism. In order to get email confirmation of each post as it is really posted use the CONFIRM variable in news.conf to match all local email addresses. Sending news up line using an NNTP-IHAVE sender To do this you setup a feed in the newsfeeds.conf file, and then setup a batch job to run every 10 minutes which actaully sends the items. This feeder program (although trivial) does not exist at the time this manual is being written. Installing a full feed: Setting up a full IHAVE feed instead of a sucking feed. In access.conf, give your feed site access to send you ihave messages: my.feeder.site.com:ihave:::* In dnews.conf, comment out the nntp_feeder definition. In newsfeeds.conf, replace: site $NNTP_FEEDER groups * builtin posting With: site my.feeder.site groups * builtin Copying important files from an existing system: With a sucking system you can do this with the commands: tellnews getnames However if you are replacing a news system then you want the active file from the one you replace, not from your feeder site. You can safely copy these files: active -> active.dat active.times -> active.times newsgroups -> active.names (may be changed in future) If you copy the active file, you must reset it so that it doesn't think it has any items, do this with the command: tellnews resetall Renaming a volume (on unix): You may wish to rename a current volume /var/spool/news to be /var/spool/dnews, to do this: cd /var/spool/news mkdir OLD mv * OLD umount /var/spool/news emacs /etc/vfstab (or /etc/fstab) (change /news into /dnews) mount /var/spool/dnews When you are happy with the new system, or you need the space: rm -r /var/spool/dnews/OLD Configuration files The following files define your news system in approx order of importance: File Name Description news.conf Main configuration file access.conf Controls nntp access to your server expire.conf Specifies how long to keep news items newsfeeds.con Defines feeds out of your news system f up the line of news servers moderators.co Defines where to send email to a nf moderated news group control.conf Defines how to process control messages for auto creation and deletion of news groups news.conf Symbol Example Description confirm *.this.place Send email confirmation to postings from these addresses. (set this to match your local email addresses) config dnews_top: Directory for configuration files (*.conf) diskspace 100 Total disk space in megabytesa dynamic feed needs 20-200MBs, a full feed needs approx 1000MB expire_at 5 23,3 Run an expire job at 5 past eleven and 5 past 3 in the morning. history dnews_disk:[ Directory for history file, this 000000] could grow to 40MB for a full feed (80,000 blocks) history_m 5 Pause if less than `n' megabytes in free life 30 Number of days to keep caching a news group after someone reads an item in it. logdir dnews_top: Directory to write log files loglvl info One of: error,warn,info,debug,flush There are four levels of error reporting, "error" includes serious errors, "warn" includes possible problems, "info" includes general information messages and "debug" which is used for tracing bugs. "flush" is the same as debug but the log file is flushed with every single line written, this is useful if the system is crashing but not providing a stack dump. manager system@here. Email address of the news manager this.place mail smtp Name of the foreign email system on VMS, typically in% or smtp% (don't include the %) myname news.this.pl Your full internet name, if left ace out this may be picked up from the system. It's best to put it in by hand to make sure it's right. nntp_feed news.feeder. The news site where you are going er site to SUCK a feed from. You need NNTP READER access to this site. report no Stops the daily email report from being sent to the manager after every expire run. timezone NZST Timezone hh:mm or timezone name Appendix B too_old 50 Refuse items that were created more than this many days in the past, this prevents old items from being re-distributed when a machine dumps old news items onto the network. spool dnews_disk: Disk name (or logical) for news articles spool_min 5 Pause if less than `n' megabytes free update_at *0,*5 * Check for new items every time the minutes end in a 5 or a zero and at any hour, e.g. every 5 minutes.. workarea dnews_disk:[ Directory for work files 000000] (active.dat, *.feed, etc) workarea_ 5 If less than `n' megabytes are min free on this disk then pause the news system, (stop accepting new articles) access.conf This file controls access to your system, you can control access by IP name, IP number or even by individual user using password protection. :::: Paramet Example Description er *.my.domain A wildcard name or number, this 161.29.4.* rule is only used if the connection matches this address Read, Post, Allow any combination of reading Ihave posting or ihave feeding from this site. chrisp Some news readers can send a user name, if so then it will be matched here, and the password can be checked. rumplestiltski The password in plain text n this wild card Notes: Unlike other news implementations, you can permit reading and posting to different combinations of news groups, for example you may wish to allow students to read all groups but only post to local news groups. expire.conf The expiration file is very different from INN and CNEWS implementations, Rather than a simple set of rules, the DNEWS expire rules match both news group names and current disk useage, so as use increases the rules can become more strict. In addition rules can specify minimum or maximum numbers of items, this allows a single rule to apply to groups which get 20 items a day, or 20 items a month. Each line of the file must have the following format: UPTO x GROUPS wild KEEP n DEFAULT n PURGE n MAXITEMS n MINITEMS n Symbol Example Description upto 20% This rule applies if less than 20% of the disk space is full. groups alt.*,comp.bin This rule applies if the group aries.* matches this list keep 2 Keep items for this many days even if they have already expired. (From the expire date in the article header) default 10 Keep items this long and then delete unless the expiration date sais to keep it longer. purge 35 Delete after this many days even if the expire header sais to keep it longer. This should be set long enough to keep FAQ's and no longer to prevent abuse. maxitem 1000 Delete old items if the group has s more than this many items in it. Good for controlling high volume groups. minitem 10 Don't apply any other rules if the s group has less than this many items in it, this is good for making `low volume' groups useable. Example: # Default rule upto 10000% groups * keep 0 default 1 purge 10 maxitems 0 minitems 0 # Start to panic a little upto 90% groups * keep 0 default 2 purge 33 maxitems 100 minitems 0 # Normal operation, put your meaningfull settings here. upto 60% groups * keep 2 default 5 purge 33 maxitems 1000 minitems 10 upto 60% groups comp.* keep 2 default 10 purge 33 maxitems 2000 minitems 10 # Lots of space, just stop things getting silly (e.g. 10000 items in...) upto 30% groups * keep 2 default 7 purge 33 maxitems 3000 minitems 100 upto 20% groups * maxitems 2000 newsfeeds.conf This file controls feeds out of DNEWS to other sites, it also controls the feed `into' DNEWS via the same mechanism. Symbol Example Description site me The name of the site to feed, $NNTP_FEEDER usually it's full internet name. my.leaf.site The `me' feed must be the first one in the file. builtin (flag, no Specifies the builtin feeding value) mechanism should be used. This is only intended for sending local postings up stream, it is not fast enough to send a full feed on to another site. posting (flag, no Specifies that the nntp `post' value) command should be used to send items upstream. This gives your feeder site the job of deciding how to email postings to moderated groups. exclude feeder.real.na Use this if your feeder site is me `name stamping' articles with a name other than it's ip name. This MUST be right or DNEWS will attempt to echo everything it gets back to the feeder site. (check the path header) smtp (flag, no Specifies this is not really a value) feed, but on a vax it is actually the email queue used to send articles to moderated groups, this is only needed on VMS and then only if you are not using the `POSTING' mechanism to feed upstream. moderators.conf You won't need to touch this file unless you want to add a local group and make it moderated. In that case add your groups at the top of the file as the first match is used. Format: newsgroup:email-address If the email address contains a "%s" then that is replaced by the news group name with the dots changed into dashes. Example: local.gossip.moderated:chrisp@marc.cri.nz gnu.*:%s@tut.cis.ohio-state.edu *:%s@uunet.uu.net control.conf This file controls the action taken when control messages are recieved. This is the secret to the administration of news. The following control messages are checked by this file: ú newgroup ú rmgroup ú version ú checkgroups ú ihave ú sendme ú sendsys ú senduuname However only the following three are implemented. ú newgroup ú rmgroup ú version Blanks are not allowed, e.g. :: would be misinterpreted. For each type of control message, you can specify based on who sent it, wether or not to do what the message sais, just log it, or email the message to the news administrator. The log file that DNEWS creates can be used to action the control messages at a later date as it contains valid commands. All control messages are logged to `control_(message).(action)' Format: message-type:email-address:action message-type rmgroup, newgroup, version email-address A wildcard email address, e.g. news@trusted.site action "drop", "log", "mail", "doit", "doit,mail" Example: all:*:*:mail ihave:*:*:drop sendme:*:*:drop sendsys:*:*:drop senduuname:*:*:drop newgroup:tale@*.uu.net:comp.*,misc.*,news.*,rec.*,sci. *,soc.*,talk.*:doit rmgroup:tale@*.uu.net:comp.*,misc.*,news.*,rec.*,sci.* ,soc.*,talk.*:doit tellnews commands The tellnews command is used to communicate with the server, you can find out what it's doing, modify some internal settings, reload the configuration files or shut down the server cleanly. To use the command you need read access to the DNEWS configuration directory. If you use a wildcard then you must put quotes around it to prevent the shell from interpreting it. tellnews status Command Description cached wild days Force a group or groups to be cached for the next so many days, if you give a wild card on unix you must put quotes around it to stop the shell from interpreting it. uncached wild Set a group or groups to uncached. Items in the group will then expire normally, this does not prevent a user from fetching the group again. expire Schedule an expire run, use this if the system is getting short on space. status Show what the server is doing reque Requeue builtin feeds. (email and posting feeds). These are normally run whenever an item is posted. exit Closedown the daemon cleanly getnames Get the active.names from our feeder, This will happen automatically with a new server the first time it starts up. killitem grpname Delete a specific item, use with caution num reload Reloads news.conf update Schedule a suck update. getold wildgrp Get older news from the feeder, use this days after deleting the entire system except the active.dat file, to reload some old news from the server. rmgroup Mark group as deleted wild.group.name killgroup Actually delete group wild.group.name newgroup name Add a new group by hand. y=Normal group, y|m creator m=Moderated the description is added to description the newsgroups file. Testing a server using TELNET NNTP is a text based protocol, this means you can test it, and even read news without any software, just by using telnet and typing in commands by hand, this is not a seriously good way to read news, but it is a very good way to test your own server or your feeding server: VMS $ telnet feeder.site /port=119 UNIX > telnet feeder.site 119 group comp.os.vms (select a group) head (display the header) body (display the body) next (next item please) help (show valid commands) quit (exit the connection) Common problems FAQ Can't BIND Can't BIND, and tellnews sais "I can't talk to you" when you telnet to the port. On LINUX the slackware distribution comes with a dummy nntp daemon installed, you must remove this so dnews can bind to the socket. edit /etc/inetd.conf (comment out the NNTP line) kill -HUP TELLNEWS fails or locks ups The DNEWS process may take 1-2 minutes to initialize, so wait a bit before panicking. Check if the process is running ps -axl | grep dnews (linux) ps -ef | grep dnews (sunos) Check the log files more /usr/local/dnews/dnews.error (.info) If it gets started up with the wrong PID you will get all sorts of protection problems, all the files in: /var/spool/dnews/... (including var/spool/dnews) must be owned by the same user, normally 'news'. Also all the files in: /var/local/dnews/* TELLNEWS sais remote node is unknown On vms, if the symbol tellnews is not defined, it will try and run telnet instead, this can be confusing. You may have to log in again to get the symbol, or if you forgot to put it in your sylogin: script then you will have to do so, e.g.: $ tellnews :== $dnews_top:tellnews TELLNEWS sais incorrect password Tellnews must be run from the usercode `news' (news$server on vms) or root. This password is to prevent someone from giving manager commands to your news server from another machine. This mechanism will not be described in more detail here as that would only make life easier for hackers. NNTP, Sorry I can't talk to you Your news-host does not want to talk to you, this is because there is a security file which gives a list of hosts which are allowed to connect, the name of your machine must be in this list, and your machine's name must be in the Domain Name Server tables as well as the Reverse Translation Domain Name server tables. The access file may be called something like: CNEWS /usr/local/lib/news/nntp_access INND /usr/local/news/nnrp.access DNEWS /usr/local/dnews/access.conf DNEWS Mailing List There is a mailing list for discussing DNEWS. This is also used for anouncing new versions and patches. To subscribe to this list send a message to: maiser@emagic.co.nz Containing the line: subscribe dnews This is a moderated list, it's only function is to provide timely information on new features, releases, bugs, installation gotcha's etc to interested people. You will not get 20 messages a day from this list, it will probably average 1-2 messages per month. EGLE magic invites your comments directly and we will only forward an item to the list if it seems relevant or necessary to ask the question of a wider pool of expertise. Send messages to: emagic@world.std.com Appendix A, What is USENET What is USENET News? USENET News is a world wide bulletin board. It has no management or central system. It is a large number of computers and networks connected together. News groups The news is divided into approximately three thousand groups. These groups are chosen by mutual agreement using a complicated voting system. How your article will get to the rest of the world When you post an article, it travels from your machine to all the NEWS servers which your machine is connected to, (usually just one other machine, but in the case of a university, you may be connected to three or four other `news' machines). Each of these servers in turn pass on your `article' to all the machines that they are connected to. In this way your message eventually gets to every other news machine in the world. There are some very clever built in systems to prevent an ariticle from travelling in a loop but these need not concern you. The important point is there is built in redundancy, so once your message gets past your local system a single faulty system will not stop it from getting to the rest of the world. What to read first There are a number of postings in the news group "news.announce.newusers" that should be read and followed by all users using news for the first time. What is an FAQ? FAQ stands for Frequently Asked Questions. These are questions that every one asks when they first become interested in a topic, the `old timers' in a news group get sick of answering them again and again so they create an FAQ. This is a list of all the questions and answers. Always look for an FAQ before posting a question. Be careful posting Remember when you ask a stupid question on NEWS you have just annoyed approximately ten to one hundred thousand people, depending on the news group. So always consider very carefully before posting. How big is it? An item in a widely distributed news group will reach an estimated 24,000 sites world-wide hosting 1,000,000 potential readers. Most sites are educational institutions, but many research organisations, companies, and government departments are also part of Usenet. This number is growing exponentially, as many as 20,000,000 users are on the internet and most `private' individuals will only begin to connect over the next couple of years. Appendix B, Time Zone Names gmt Greenwich Mean ut Universal utc Universal Coordinated cut Coordinated Universal wet Western European bst British Summer nst Newfoundland Standard ndt Newfoundland Daylight ast Atlantic Standard adt Atlantic Daylight est Eastern Standard edt Eastern Daylight cst Central Standard cdt Central Daylight mst Mountain Standard mdt Mountain Daylight pst Pacific Standard pdt Pacific Daylight yst Yukon Standard ydt Yukon Daylight akst Alaska Standard akdt Alaska Daylight hst Hawaii Standard hast Hawaii-Aleutian Standard hadt Hawaii-Aleutian Daylight ces Central European Summer cest Central European Summer mez Middle European mezt Middle European Summer cet Central European met Middle European eet Eastern Europe msk Moscow Winter msd Moscow Summer wast West Australian Standard wadt West Australian Daylight hkt Hong Kong cct China Coast jst Japan Standard kst Korean Standard kdt Korean Daylight cast Central Australian Standard cadt Central Australian Daylight east Eastern Australian Standard eadt Eastern Australian Daylight nzst New Zealand Standard nzdt New Zealand Daylight Appendix C, NNTP Summary authinfo [user Name]|[pass Password] Used to authenticate individual users. The command is first sent to define a user and then sent a second time to give the password. Older news readers may not allow the use of this feature. On the server side add entries to access.dat using an editor. article [MessageID|Number] Responds with the article, if no second parameter is given then the current article is sent. News readers should avoid using MessageID as it generates extra work for the server. body [MessageID|Number] Sends the body of the message. date Responds with the current time from the servers point of view, (not standard) group newsgroup Sets the current group head [MessageID|Number] Sends the header of a message. help Sends a list of valid commands. ihave Used by another news system to `offer' new items to this news system. last Sets the current news item to one item lower. list [active] List on it's own or with the active qualifier responds with a list of known news groups. list active.times Responds with a list of news groups and the date and time they were created. This file may or maynot be complete depending on how the system was installed and how long it has been running. list newsgroups Responds with a list of news groups and a short description of each one. This list may or may not be complete or even available depending on how your system is installed. listgroup [newsgroup] (extension) Gives a list of valid items in a news group. This is currently the only efficient way for a news reader to establish which items in a group actually exist. mode reader Does nothing, this command only exists for compatibility with INN. newgroups yymmdd hhmmss [GMT] [] Lists news groups created since the given date. newnews newsgroups yymmdd hhmmss [GMT] [] Lists message-id's of news items that arrived after the specified date. next Sets the current point to the next item. post Used by news readers to post a new item. slave Has no affect. stat [MessageID|Number] Checks an item exists, responding with it's message id. xgtitle [group_pattern] (extension) Extension used by ANU-NEWS to actually use the newsgroups file to respond with a list of newsgroups that matches the pattern, and gives their one line descriptions. xhdr header [range|MessageID] (extension) Lists the requested header of all items that fall withing the given range. xover [range] (extension) Lists all the items within range giving a fixed set of headers in return. Under DNEWS this command is implemented in software, no actual database is required as the DNEWS database is efficient enough to produce this information on the fly. xpat header range|MessageID pat [morepat...] (extension) Weird extension, don't use this. In shell syntax it is roughly equivalent to: xhdr header range | grep pat xpath xpath MessageID (extension) This command is not implemented, as their is no internal file name that can be returned and frankly the command should never have existed as it breaks every rule of information hiding and abstraction. But hey, thats unix!