1## Articles that haven't been read for <expire> days get expired and 2## removed by texpire(8), unless you define special expire times. 3## Note that texpire arguments can change this to relate to the date of 4## arrival. See the texpire manual page. 5## Mandatory. 6expire = 20 7 8## This is the NNTP server leafnode fetches its news from. 9## You need read and post access to it. Mandatory. 10server = news.example.org 11 12## 13## All the following parameters are optional 14## 15 16## Important and recommended setting: 17## Fetch only a few articles when we subscribe a new newsgroup. The 18## default is to fetch all articles. 19## As leafnode forgets the article numbers of its upstream server when 20## a group is marked as uninteresting, and later marked interesting 21## again, you may end up downloading ALL articles from the upstream 22## in that group. So uncomment and adjust this line: 23# initialfetch = 100 24 25## Debugging setting: 26## 27## This MUST be accompanied by syslog.conf changes! 28## ------------------------------------------------ 29## Make sure you've also read the TROUBLESHOOTING section in README. 30## 31## The higher, the more output will be logged - note the debugging 32## output is copious in any case, so leave this at 0 for normal use, 33## and set to 1, 2 or 3 only for debugging. 34# debugmode = 3 35 36## I have free access to my news server. If you don't have, comment out 37## the following two lines and change them accordingly. 38# username = gulbrandsen 39# password = secret 40 41## By default, leafnode only serves connections from addresses in the 42## local networks and drops those from outside. An IPv4 address, or an 43## IPv6 address on computers that provide the getifaddrs() interface is 44## considered local if it is within the networks (IP/netmask) of the local 45## interfaces. On computers that lack the getifaddrs() interface, an 46## IPv6 address is considered local if it is site-local, link-local or 47## the loopback address (::1). 48## 49## You can enable remote access by doing: 50## 1. enabling access for single static IPs (or subnetworks) through 51## your super server (xinetd, tcpserver) or, if the service is wrapped by 52## tcpd, hosts.allow/hosts.deny configuration, 53## 2. disabling access for all other hosts (default to deny), 54## 3. testing that "deny" works, to avoid abuse of your server, 55## 4. uncommenting this option, capitalizing the "strangers" subword and 56## setting the value to 42. 57## 58## WARNING: ENABLING THIS OPTION IS DANGEROUS. YOU AGREE TO BE LIABLE 59## FOR ALL ABUSE OF YOUR SERVER WHEN THIS OPTION IS ENABLED. 60## IF ANYTHING ABOUT ITEMS 1. TO 3. ABOVE IS UNCLEAR, DO NOT ENABLE THIS! 61## IF YOU ARE NOT FAMILIAR WITH ACCESS CONTROL, OR YOUR CLIENTS ARE ON 62## DYNAMIC IPS, YOU MUST NOT ENABLE THIS. (You can use other, authenticated, 63## methods of access instead, for instance SSH tunnels.) 64## 65# allowstrangers = 0 66 67## Standard news servers run on port 119, reserved for NNTP, so that's 68## the default port fetchnews wants to connect to. If your ISP's news 69## server (or other "upstream") does not listen on this standard port, 70## you can set the "port" option. Note that it is only relevant for 71## fetchnews, for leafnode, set the port in your inetd.conf, xinetd.conf 72## file or tcpsvd/tcpserver command line, whatever is relevant for your 73## system. Leafnode does not currently support SSL. 74## Give "port" a numeric value, example: 75# port = 9119 76 77## If you want to guarantee that the stdout/stderr are line buffered 78## (GNU libc sets them to full buffering if they are redirected to 79## files), then set this: 80# linebuffer = 1 81 82## This is another news server which stores some groups that are not 83## available on the first one. You can define username, password and port 84## for each server separately. 85# server = specific.newsgroups.example.com 86# username = xenu 87# password = secret 88 89## This is a news server which does not understand the 90## "LIST NEWSGROUP news.group" command. For this reason, we don't try to 91## download newsgroups descriptions when getting new newsgroups. This is 92## achieved by putting "nodesc = 1" somewhere behind the server 93## line. 94# server = broken.upstream.example.org 95# nodesc = 1 96 97## Here we have another news server which has a very slow connection. For 98## that reason, we wait a full minute before we give up trying to connect. 99## The default is 10 seconds. 100# server = really.slow.example.org 101# timeout = 60 102 103## Disable the updating of the active file unless specifically requested 104## in order to minimise network usage as much as possible. The active 105## file can be updated manually with the "-f" option to fetchnews. 106# server = even.slower.example.com 107# noactive = 1 108 109## And this is a news server you only want to pull news from, but never 110## post to. You can also use this as a workaround if you do not have posting 111## permission on the server while it still greets you with a 200 code. 112## The default is: nopost = 0 113# server = lurk-only.example.com 114# nopost = 1 115 116## And this is a news server you only want to post to, but never 117## fetch messages from. If set, noactive = 1 is also assumed. 118## The default is: noread = 0 119# server = post-only.example.com 120# noread = 1 121 122## And this is a news server with broken XOVER. Forbid XOVER, 123## leafnode will use XHDR. XHDR may be slower or faster than XOVER, 124## depending how many of the maxlines/minlines, maxbytes, maxage 125## and similar options. 126## The default is: noxover = 0 127# server = post-only.example.com 128# noxover = 1 129 130## The post_anygroup parameter affects posting and makes leafnode skip 131## the check if the newsgroup is carried by the respective server. 132## Use this on servers that allow only posting, but no "GROUP" commands. 133## Note: do not enable unless you know you may post to that server, your 134## postings might end up in the failed.postings directory otherwise. 135# server = post-only.example.com 136# post_anygroup = 1 137 138## This shows how a server is configured that only has specific news 139## groups. Note that this parameter is a PCRE, not a wildmat! See 140## pcre(3), pcrepattern(3) or pcre(7), depending on your PCRE version. 141## IMPORTANT: you must run fetchnews -f to make changes to this 142## option effective. 143# server = cnews.corel.com 144# only_groups_pcre = corel\. 145 146## Another option related to and depending on this only_groups_pcre option 147## is relevant for posting; if set, ALL groups in a Newsgroups: header 148## of a cross-posting will must match before the article is posted to 149## the server. If unset, ANY group that matches allows the post. 150# only_groups_match_all = 1 151 152## Non-standard expire times (glob(7) wildcard constructs possible) 153# 154# groups too big to hold articles 20 days: 155# groupexpire comp.os.linux.* = 5 156# 157# very interesting, hold articles longer: 158# groupexpire any.local.newsgroup = 100 159# 160# archive this group (fetchnews uses the global expire to figure the 161# maxage, but texpire will skip it): 162# groupexpire my.archived.group = -1 163 164## Never fetch more than this many articles from one group in one run. 165## Be careful with this; setting it much below 1000 is probably a bad 166## idea. 167# maxfetch = 2000 168 169## If you want to use leafnode like an offline newsreader (e.g. Forte 170## Agent) you can download headers and bodies separately if you set 171## delaybody to 1. In this case, fetch will only download the headers 172## and only when you select an article, it will download the body. 173## This can save a huge amount of bandwith if only few articles are really 174## read from groups with lots of postings. 175## This feature works not very well with Netscape, though (which is not 176## a fault of Leafnode). 177# delaybody = 0 178 179## If you have configured delaybody mode and your newsreader doesn't 180## cope with articles changing their numbers but not their Message-ID 181## such as Knode, then try setting this switch to 1, which 182## will make fetchnews keep the article number. 183## You'll have to switch the article body cache off though in your 184## newsreader. 185# delaybody_in_situ = 0 186 187## To avoid spam, you can select the maximum number of crosspostings 188## that are allowed in incoming postings. Setting this below 5 is 189## probably a bad idea. The default is unlimited crossposting. 190# maxcrosspost = 5 191 192## If you suffer from repeatedly receiving old postings (this happens 193## sometimes when an upstream server goes into hiccup mode) you can 194## refuse to receive them with the parameter "maxage" which tells the 195## maximum allowed age of an article in days. A value of 0 indicates that 196## no checking should be performed. The default maxage is 10 days. 197## WARNING: maxage can be overridden by expire! See the clamp_maxage 198## parameter below. 199# maxage = 10 200 201## By default, maxage is limited to groupexpire (if applicable) or 202## expire (otherwise). On some rare occasions, this limit may be 203## undesirable. To avoid this maxage manipulation, uncomment this line: 204# clamp_maxage = 0 205 206## maxlines will make fetch reject postings that are longer than a certain 207## amount of lines. 208# maxlines = 100 209 210## minlines will make fetch reject postings that are shorter than a certain 211## amount of lines. 212# minlines = 2 213 214## maxbytes will make fetch reject postings that are larger 215# maxbytes = 50000 216 217## timeout_short determines how many days fetch gets a newsgroup which 218## has been accidentally opened. The default is two days. 219# timeout_short = 1 220 221## timeout_long determines how many days fetch will wait before not getting 222## an unread newsgroup any more. The default is seven days. 223# timeout_long = 6 224 225## timeout_active determines how many days fetch will wait before re-reading 226## the whole active file. The default is 90 days. 227# timeout_active = 365 228 229## timeout_client determines how many seconds of inactivity to allow before 230## a client is forcibly disconnected. The default is 15 mins (900s). Optional. 231# timeout_client = 900 232 233## timeout_fetchnews determines how many seconds fetchnews will wait for 234## a server reply before assuming the server has become wedged. 235## The default is 5 mins (300s). Optional. 236# timeout_fetchnews = 300 237 238## timeout_lock determines how long the leafnode programs retry to 239## obtain the lock file. The default is 5 seconds. 240## Note you can use the LN_LOCK_TIMEOUT environment variable to override 241## this. 242# timeout_lock = 900 243 244## If you want to have your newsreader score/kill on Xref: lines, you might 245## want to uncomment this. 246# create_all_links = 1 247 248## If you want to filter out certain regular expressions in the header, 249## create a "filterfile" (how this is done is explained in the README) 250## and set 251# filterfile = /etc/leafnode/filters 252 253## Note that filtering usually means HEAD and BODY are downloaded 254## separately, so fetchnews has to wait for the packets TWICE to travel 255## to the server and back. If you have a fast link with high latencies 256## (for example a DSL line with interleaving or a satellite link), it 257## may be faster to request header and body in a single command and 258## discard the body. Note that the filter applies to the header only in 259## either case because PCRE matching is expensive. 260## 261## If you have one of the high-latency high-throughput links and have 262## enough free traffic left or a flat rate (no per-MByte billing), uncomment 263## this: 264# article_despite_filter = 1 265 266## If your newsreader does not supply a Message-ID for your postings 267## Leafnode will supply one, using the hostname of the machine it is 268## running on. If this hostname is not suitable, this parameter can be 269## used to override it. Do not use a fantasy name, it may interfere with 270## the propagation of your messages. Most modern newsreaders do provide 271## a Message-ID. 272# hostname = myhost.example.org 273 274## You can also override the From: header address shown in placeholder 275## articles. It should be the news administrator's mail address. 276# newsadmin = postmaster@another.example.org 277 278## If in your local Usenet hierarchy, posting unencoded 8-bit data in 279## headers is condoned, uncomment this option to allow this. 8-bit data 280## in headers is officially illegal, although the header character set 281## may change to UTF-8 soon. 282# allow_8bit_headers = 1 283